Php 将DateTime转换为带时区的ISO 8601 DateTime格式

Php 将DateTime转换为带时区的ISO 8601 DateTime格式,php,datetime,timezone,iso8601,Php,Datetime,Timezone,Iso8601,如何将时间从2010-12-30 23:21:46转换为ISO 8601日期格式 我尝试了$datetime->format(datetime::ATOM)和日期(date_ISO8601,strotime('2010-12-30 23:21:46'))转换成ISO8601格式,如2016-12-31T09:47:50+0000。但我需要的是2018-02-19T05:43:59.753000Z格式。如何使用PHP实现???如果您希望以Zulu/UTC/GMT时区输出格式,则必须首先转换时区,因

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


我尝试了
$datetime->format(datetime::ATOM)
日期(date_ISO8601,strotime('2010-12-30 23:21:46'))
转换成ISO8601格式,如
2016-12-31T09:47:50+0000
。但我需要的是
2018-02-19T05:43:59.753000Z
格式。如何使用PHP实现???

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

$dt=新日期时间('2010-12-30 23:21:46');
$dt->setTimezone(新日期时区('UTC'));
echo$dt->format('Y-m-d\TH:i:s.u\Z');


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格式。阅读更多