如何以秒为单位返回以毫秒为单位的日期?
问题描述:
我目前有一个时间字符串,它是总秒数和毫秒数,例如“83.555”秒。对于我的询问,我需要这个格式化为“00:01:23.555”,所以我到现在为止我所用如何以秒为单位返回以毫秒为单位的日期?
date("H:i:s.u", 83.555);
但我意识到这将输出00:01:23.000000
有没有办法正确格式时间字符串?
感谢您的任何帮助。
答
您需要使用DateTime
对象而不是date()
函数。 date()
取整数,因此丢弃小数点后的所有内容。 DateTime
支持小数秒。
要生成DateTime
对象,你需要告诉它你正在解析的格式。然后,您可以根据需要进行格式化。
Datetime::createFromFormat('s.u', 83.555)->format('H:i:s.u');
将返回
"00:01:23.555000"
使用'DateTime'对象,而不是'日期()'函数。根据[docs](http://php.net/manual/en/function.date.php)“请注意,date()总是会生成000000,因为它需要一个整型参数,而DateTime :: format()支持如果DateTime是以微秒创建的,则为微秒。“ – jfadich
当使用'DateTime'时,会导致'DateTime :: __ construct():无法解析位置0(8)处的时间字符串(83):意外字符'。它似乎只格式化日期时间而不是秒。 – Chris