这是什么样的日期时间格式?

时间:2016-05-23 03:08:06

标签: php datetime

我想知道如何在php中实现这个日期格式“2016-04-19T03:17:38.184 + 00:00”?

它与ISO 8601有所不同。请告知。

http://php.net/manual/en/function.date.php

感谢。

1 个答案:

答案 0 :(得分:1)

使用date()来显示毫秒部分是不可能的,因为从手册中可以看出:

  

date()将始终生成000000,因为它采用整数参数,而DateTime :: format()如果使用微秒创建DateTime则支持微秒。

所以唯一的方法是使用DateTime并将微秒传递给构造函数。但是因为我们只需要几毫秒,所以我们可以将它舍入,然后从末尾删除尾随的三个0。

$t = microtime(true);
$milli = sprintf("%03d",($t - floor($t)) * 1000);
$d = new DateTime( date('Y-m-d H:i:s.'.$milli, $t) );

echo $d->format("Y-m-d\TH:i:s.");
echo substr($d->format("u"), 0, -3);
echo $d->format('P');

输出:

  

2016-05-22T22:41:57.294-05:00