使用时区将日期时间转换为 ISO 8601 日期时间格式

Nis*_*h G -1 php timezone datetime iso8601

如何将我的时间从 2010-12-30 23:21:46 转换为 ISO 8601 日期格式?

我试过了$datetime->format(DateTime::ATOM)date(DATE_ISO8601, strtotime('2010-12-30 23:21:46'))它转换成 ISO8601 格式,如2016-12-31T09:47:50+0000. 但我需要的是2018-02-19T05:43:59.753000Z格式。我怎样才能使用 PHP 实现?

Gla*_*vić 7

如果您希望以 Zulu/UTC/GMT 时区输出格式,那么您必须先转换时区,因为我不知道您当前的设置是在哪个时区。

$dt = new DateTime('2010-12-30 23:21:46');
$dt->setTimezone(new DateTimeZone('UTC'));
echo $dt->format('Y-m-d\TH:i:s.u\Z');
Run Code Online (Sandbox Code Playgroud)

demo


ISO-8601 是一个标准,有多种格式:

  • 2018-04-03
  • 2018-04-03T05:20:03+00:00
  • 2018-04-03T05:20:03Z
  • 20180403T052003Z
  • 2018-W14
  • 2018-W14-2
  • ...

这都是有效的 ISO-8601 格式。在这里阅读更多。