在此查询中,目标是将日期字符串格式化为“m-d-Y H:i:” s.u" 来自以毫秒为单位的 Unix 时间戳。但是,结果在微秒字段中始终显示 000000。
<code class="php">$milliseconds = 1375010774123; $d = date("m-d-Y H:i:s.u", $milliseconds/1000); print $d;</code>
输出:
07-28-2013 11:26:14.000000
要解决此问题,可以使用输入格式“U.u”:
<code class="php">$now = DateTime::createFromFormat('U.u', microtime(true)); echo $now->format("m-d-Y H:i:s.u");</code>
输出:
04-13-2015 05:56:22.082300
此方法利用 PHP 手册中的以下格式说明符:
需要注意的是,如果未明确提供, createFromFormat() 方法通常使用本地时区。但是,由于 microtime() 返回自 UTC 中的 Unix 纪元以来经过的秒数,因此 DateTime 对象隐式初始化为 UTC。
如果需要显示特定时区的时间,则必须设置在初始 DateTime 创建后使用 setTimeZone():
<code class="php">$now->setTimeZone(new DateTimeZone('America/New_York'));</code>
要将格式化的日期字符串输入到 MySQL,格式应修改为:
<code class="php">format("Y-m-d H:i:s.u")</code>
以上是当以毫秒为单位设置 m-d-Y H:i:s.u 格式的日期时,为什么微秒字段显示 000000?的详细内容。更多信息请关注PHP中文网其他相关文章!