猿问

为什么 Carbon::createFromFormat 在与周格式一起使用时会导致错误?

这段代码:

Carbon::createFromFormat('Y-W', '2018-11');

抛出这个错误:

The format separator does not match Trailing data

为什么会发生这种情况?该字符串与格式明显匹配,当我使用不同的格式和字符串(如'Y-m-d' and '2018-11-11'. 使用周数有什么问题?


慕斯王
浏览 254回答 2
2回答

大话西游666

由于您使用的是 carbon 并且您不能在格式中使用“W”,因此您可以执行以下操作:$date = Carbon::create(2018)->week(11);产量日期:2018-03-12 00:00:00.0 UTC (+00:00)

有只小跳蛙

这种用法在 PHP 中是不可能的(与 Carbon 无关):https://3v4l.org/2KjXXvar_dump(\DateTime::createFromFormat('Y-W', '2018-11'));var_dump(\DateTime::getLastErrors());输出:bool(false)array(4) {  ["warning_count"]=>  int(0)  ["warnings"]=>  array(0) {  }  ["error_count"]=>  int(2)  ["errors"]=>  array(2) {    [5]=>    string(35) "The format separator does not match"    [6]=>    string(13) "Trailing data"  }}apokryfos 的建议很好。但要小心,年-周数字因文化而异(不同的周开始、年开始)。碳处理它的->locale()方法。
随时随地看视频慕课网APP
我要回答