我正在从javascript Date()函数生成并发送完整日期字符串,该函数将返回完整字符串日期格式,如下所示:
Sun Jan 01 2017 00:00:00 GMT+0100 (Central European Standard Time)
碳分析器将不接受这种格式在服务器端创建相同的日期。这不起作用:
$date = Carbon::parse('Sun Jan 01 2017 00:00:00 GMT+0100 (Central European Standard Time)');
错误 未能解析位置41(l)处的时间字符串(Sun Jan 01 2017 00:00:00 GMT + 0100(欧洲中部标准时间)):双时区规范< / em>
如果我删除了(Central European Standard Time)
的作品:
$date = Carbon::parse('Sun Jan 01 2017 00:00:00 GMT+0100');
然后正确创建日期。
JS是否可以以某种方式在Carbon中使用JS默认Date(),或者在将日期发送到Carbon之前必须格式化日期?
答案 0 :(得分:2)
Carbon扩展了PHP的本机DateTime类,因此您可以改用createFromFormat
:
$date = 'Sun Jan 01 2017 00:00:00 GMT+0100 (Central European Standard Time)';
$carbon = Carbon::createFromFormat('D M d Y H:i:s e+', $date);
格式规范的重要部分是末尾的+
,它告诉它忽略任何尾随数据。
有关演示,请参见https://3v4l.org/Rnen7(使用DateTime
而非Carbon
)
答案 1 :(得分:1)
您可以以ISO格式传递日期,Carbon可以理解ISO格式。您可以使用new Date().toISOString()