javascript 全文 Date() 格式 PHP carbon

javascript full text Date() format with PHP carbon

我正在从 javascript Date() 函数生成并发送完整的日期字符串,returns 完整的字符串日期格式如下:

Sun Jan 01 2017 00:00:00 GMT+0100 (Central European Standard Time)

Carbon 解析器不接受这种在服务器端创建相同日期的格式。这不起作用:

$date = Carbon::parse('Sun Jan 01 2017 00:00:00 GMT+0100 (Central European Standard Time)');

错误 无法在位置 41 ( l): 双时区规范

如果我删除 (Central European Standard Time) 作品:

$date = Carbon::parse('Sun Jan 01 2017 00:00:00 GMT+0100');

然后它正确地创建了日期。

JS default Date() 能否以某种方式在 Carbon 中使用,或者我必须在将日期发送到 Carbon 之前格式化日期?

Carbon 扩展了 PHP 的原生 DateTime class,因此您可以改用 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

您可以传递 ISO 格式的日期,Carbon 理解 ISO 格式。您可以使用 new Date().toISOString()

获取 ISO 格式的日期