在 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');