日期 toIsoString PHP

mon*_*ser 5 php datetime date

我想要一个像 new Date().toISOString() of javascript 这样的日期

输出是 2018-06-11T08:30:25.597Z

我试过

(new \DateTime('now',new \DateTimeZone("UTC")))->format(\DateTime::ISO8601) // 2018-06-12T08:21:13+0000


$t = date('c', strtotime('2010-12-30 23:21:46')); //2010-12-30T23:21:46+01:00
$t2 = date(DATE_ISO8601, strtotime('2010-12-30 23:21:46')); //2010-12-30T23:21:46+01:00

$datetime = new \DateTime('2010-12-30 23:21:46');
$t3 = $datetime->format(\DateTime::ATOM); // 2010-12-30T23:21:46+01:00
Run Code Online (Sandbox Code Playgroud)

我想结合

联合的 ISO 8601 UTC 日期和时间(YYYY-MM-DDTHH:MM:S+Timezone Offset|Z,即 2018-04-18T11:02:05.261Z)

在Javascript中,我可以使用这种格式

new Date().toISOString() //2018-06-12T08:24:49.321Z
Run Code Online (Sandbox Code Playgroud)

Łuk*_*bek 1

你的第一次尝试几乎就是你所需要的,只需更改\DateTime::ISO8601\DateTime::ATOM.

来自 PHP 手册:

日期时间::ISO8601 DATE_ISO8601

ISO-8601(示例:2005-08-15T15:52:01+0000)

注意:此格式与 ISO-8601 不兼容,但出于向后兼容的原因保留这种格式。请改用 DateTime::ATOM 或 DATE_ATOM 以与 ISO-8601 兼容。

  • 与 `(new \DateTime('now',new \DateTimeZone("UTC")))->format(\DateTime::ATOM);` 我有 `2018-06-12T08:37:38+00:00`但我想要 `2018-06-11T08:30:25.597Z` (2认同)
  • @monkeyUser:有一个更简单的解决方案:`echo (new \DateTime('UTC'))->format('Ymd\TH:i:s\Z');` (2认同)