我收到了一个 MS 格式的 JSON 日期日期。它看起来像这样:
/Date(1365004652303)/
我可以通过执行以下操作将其转换为 PHP DateTime 对象:
$timestamp = round(((int) $originalMSdate) / 1000);
$convertedDate = new DateTime();
$convertedDate->setTimestamp($timestamp);
但最终,我需要它是 ISO 8601 格式的字符串。我尝试将其转换为 ISO 日期对象,然后使用 strval() 将其转换为字符串,但 strval() 不适用于日期对象。
我也尝试过
$dateString = date_format($convertedDate, 'YY-MM-DD H:i:s');
但我需要它还包括时区信息,如下所示:2015-10-01T21:22:57.057Z
我在 date_format 中没有看到相应的字符。
我怎样才能实现这个目标?
编辑:我应该澄清我没有打印结果字符串。我需要将其传递到数据库中接受字符串数据类型的字段。
请尝试以下代码
<?php
// input
$time = microtime(true);
// Determining the microsecond fraction
$microSeconds = sprintf("%06d", ($time - floor($time)) * 1000000);
// Creating DT object
$tz = new DateTimeZone("Etc/UTC");
$dt = new DateTime(date('Y-m-d H:i:s.'. $microSeconds, $time), $tz);
$iso8601Date = sprintf(
"%s%03d%s",
$dt->format("Y-m-d\TH:i:s."),
floor($dt->format("u")/1000),
$dt->format("O")
);
// Formatting according to ISO 8601-extended
var_dump(
$iso8601Date
);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)