为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕斯王 2021-11-13 17:25:41
这段代码: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)


查看完整回答
反对 回复 2021-11-13
?
有只小跳蛙

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()方法。


查看完整回答
反对 回复 2021-11-13
  • 2 回答
  • 0 关注
  • 253 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信