在php中显示小时:分钟:秒:毫秒

Posted

技术标签:

【中文标题】在php中显示小时:分钟:秒:毫秒【英文标题】:show hours:minutes:seconds:milliseconds in php 【发布时间】:2013-01-16 23:02:54 【问题描述】:

您好,我正在尝试花费总秒数,即 972 秒并将其转换为这种格式:

分:秒:毫秒

我找不到诸如 gmdate() 之类的 php 函数来帮助我转换它。请帮忙!

谢谢。

【问题讨论】:

你打算如何从秒中得到毫秒? 我认为答案可能就在这个问题中。 [***.com/questions/4763668/…[1]:***.com/questions/4763668/… 这个答案也可能很有价值:***.com/a/37336227/1748266(无耻的插件...) 【参考方案1】:

这适用于 PHP 5 >= 5.3.0

$date = DateTime::createFromFormat('U.u', microtime(TRUE));
var_dump($date->format('Y-m-d H:i:s.u'));

来自DateTime with microseconds

手册:http://php.net/manual/de/datetime.createfromformat.php

【讨论】:

【参考方案2】:

在:http://php.net/manual/en/function.date.php 中可以使用格式:date("i:s:u");在 PHP > 5.2.2 中,

i: minutes, s:seconds, u:microseconds 并在第二个参数中使用时间戳来设置你所说的 972 seconds -> 0:972:0 但是如果你只想要毫秒,我认为你必须操纵结果字符串与 substr,...

【讨论】:

以该格式显示,但它没有返回精确的毫秒值。所以我尝试了: echo date("i:s:u", 972);它返回:16:12:000000 是的,我也有这个问题,还没有找到解决方法。 :( 来自手册:Microseconds (added in PHP 5.2.2). Note that date() will always generate 000000 since it takes an integer parameter, whereas DateTime::format() does support microseconds if DateTime was created with microseconds.(可能会在这个问题之后添加)【参考方案3】:

试试这个

$second = "123456789"
$s = $second%60;
$m = floor(($second%3600)/60);
$h = floor(($second%86400)/3600);
$d = floor(($second%2592000)/86400);
$M = floor($second/2592000);

echo "$M months, $d days, $h hours, $m minutes, $s seconds";

【讨论】:

这个答案缺少教育解释。

以上是关于在php中显示小时:分钟:秒:毫秒的主要内容,如果未能解决你的问题,请参考以下文章

PHP将DATETIME转换为时间前函数,秒,分钟,小时,天等[重复]

js(javascript)取得当前时间小时,分钟,秒 以及毫秒

返回指定时间的年月日小时 分钟 秒 毫秒

java获取当前年月日 小时 分钟 秒 毫秒

java 日期比较(compareTo)

Js Jquery 时间控件显示小时 分钟 秒