在 PHP 中为 JSON 创建日期时间
Create DateTime for JSON in PHP
我需要在 PHP Laravel 中输入 API 并在其中传递原始 body 日期。它需要按照 json 的要求发送数据时间,格式如下所示。
"ShippingDateTime": "\/Date(1484085970000-0500)\/",
如何在 PHP/Laravel 中创建这样的日期,我可以获得任何未来日期(当前日期 + 1)。目前它给出的错误是:
DateTime content '23-01-2021' does not start with '\/Date(' and end with ')\/' as required for JSON.
看起来你有一个 Unix 时间戳,最后是毫秒(000
),加上一个时区标识符。您应该能够使用 date formatting flags UvO
(unix time, milliseconds, timezone)
构建它
(这些在我的时区,-06:00
)
echo date('UvO');
// 1611339488000-0600
// Surround it with the /Date()/ it requests
// Encode it as JSON wherever is appropriate in your code
echo json_encode('/Date(' . date('UvO') . ')/');
// "\/Date(1611339460000-0600)\/"
假设你的日期在 DateTime
对象中,调用它们的 format()
方法来生成你想要的日期格式。
// create your DateTime as appropriate in your application
$yourdate = new \DateTime();
echo json_encode('/Date(' . $yourdate->format('UvO') . ')/');
// Set it ahead 1 day in the future
$yourdate->modify('+1 day');
我需要在 PHP Laravel 中输入 API 并在其中传递原始 body 日期。它需要按照 json 的要求发送数据时间,格式如下所示。
"ShippingDateTime": "\/Date(1484085970000-0500)\/",
如何在 PHP/Laravel 中创建这样的日期,我可以获得任何未来日期(当前日期 + 1)。目前它给出的错误是:
DateTime content '23-01-2021' does not start with '\/Date(' and end with ')\/' as required for JSON.
看起来你有一个 Unix 时间戳,最后是毫秒(000
),加上一个时区标识符。您应该能够使用 date formatting flags UvO
(unix time, milliseconds, timezone)
(这些在我的时区,-06:00
)
echo date('UvO');
// 1611339488000-0600
// Surround it with the /Date()/ it requests
// Encode it as JSON wherever is appropriate in your code
echo json_encode('/Date(' . date('UvO') . ')/');
// "\/Date(1611339460000-0600)\/"
假设你的日期在 DateTime
对象中,调用它们的 format()
方法来生成你想要的日期格式。
// create your DateTime as appropriate in your application
$yourdate = new \DateTime();
echo json_encode('/Date(' . $yourdate->format('UvO') . ')/');
// Set it ahead 1 day in the future
$yourdate->modify('+1 day');