PHP日期获得微秒精度以匹配MySQL列数据类型

时间:2018-01-04 18:22:47

标签: php mysql

我在MySQL中定义了以下列:

some_ts DATETIME(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000'

通常情况下,我会使用PHP的date()函数,例如date("Y-m-d H:i:s"),但会将微秒数保留为默认值。有没有办法使用date()给我这个,所以我可以在数据库中反映出来?

2 个答案:

答案 0 :(得分:3)

根据定义,PHP date()方法格式化一个unix时间戳,它只跟踪时间到第二个。您可以使用DateTime::format()来获取当前的微秒:

$dt = new DateTime();
$ts = $dt->format('Y-m-d H:i:s.u');
var_dump($ts); // 2018-01-04 01:28:33.12345

答案 1 :(得分:1)

您可以修改microtime()的输出,并将其附加到此date()来电。

echo date("Y-m-d H:i:s.").(explode('.', explode(' ', microtime())[0])[1]);

输出:

2018-01-04 10:28:17.226338

注意:对于那些对此表现持怀疑态度的人;它比使用new Datetime()快了大约33%。