这段代码:Carbon::createFromFormat('Y-W', '2018-11');抛出这个错误:The format separator does not match Trailing data为什么会发生这种情况?该字符串与格式明显匹配,当我使用不同的格式和字符串(如'Y-m-d' and '2018-11-11'. 使用周数有什么问题?
2 回答
大话西游666
TA贡献1817条经验 获得超14个赞
由于您使用的是 carbon 并且您不能在格式中使用“W”,因此您可以执行以下操作:
$date = Carbon::create(2018)->week(11);
产量日期:
2018-03-12 00:00:00.0 UTC (+00:00)
有只小跳蛙
TA贡献1824条经验 获得超8个赞
这种用法在 PHP 中是不可能的(与 Carbon 无关):
https://3v4l.org/2KjXX
var_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()方法。
- 2 回答
- 0 关注
- 253 浏览
添加回答
举报
0/150
提交
取消