我想知道如何在php中实现这个日期格式“2016-04-19T03:17:38.184 + 00:00”?
它与ISO 8601有所不同。请告知。
http://php.net/manual/en/function.date.php
感谢。
答案 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