回答
不要落入使用日期函数这个陷阱!你在这里有什么是时间间隔,而不是日期。天真的办法是做这样的事情:
date("h:i:s.u", $mytime/1000)
但因为日期函数用于(哇!)日期,它不处理的时间,你会希望它在这种情况下的方式 - 它需要时区和夏令时等,格式化日期/时间。
相反,你可能只想做一些简单的数学:
$input = 70135;
$uSec = $input % 1000;
$input = floor($input/1000);
$seconds = $input % 60;
$input = floor($input/60);
$minutes = $input % 60;
$input = floor($input/60);
// and so on, for as long as you require.
试试这个功能可以显示毫秒的量你喜欢的方式:我相信有在PHP格式毫秒没有内置功能
<?php
function udate($format, $utimestamp = null)
{
if (is_null($utimestamp)) {
$utimestamp = microtime(true);
}
$timestamp = floor($utimestamp);
$milliseconds = round(($utimestamp - $timestamp) * 1000000);
return date(preg_replace('`(?<!\\\\)u`', sprintf("%06u", $milliseconds), $format), $timestamp);
}
echo udate('H:i:s.u'); // 19:40:56.78128
echo udate('H:i:s.u', 654532123.04546); // 16:28:43.045460
?>
@Kamil的数量 - 我内联代码,以便它在这里为后人。 – 2009-12-02 16:04:54
顺便说一句 - 我不知道'preg_replace'在做什么。看起来很奇怪。 – 2009-12-02 16:05:32
@Dominic - 谢谢。我会在下一次做。 – 2009-12-02 16:05:56
,你需要使用数学。
由于手册中提到:
ù微秒(在PHP加入5.2.2) 实施例:654321
我们对日期()函数
一个 'U' 参数例子:
if(($u/60) >= 60)
{
$u = mktime(0,($u/360));
}
date('H:i:s',$u);
如果您正在使用P- HP 5.3,你可以使用DateInterval
对象:
list($seconds, $millis) = explode('.', $milliseconds/1000);
$range = new DateInterval("PT{$seconds}S");
echo $range->format('%H:%I:%S') . ':' . str_pad($millis, 3, '0', STR_PAD_LEFT);
为什么用date()
和格式时,你可以用数学烦恼呢? 如果$ms
是您毫秒
echo floor($ms/60000).':'.floor(($ms%60000)/1000).':'.str_pad(floor($ms%1000),3,'0', STR_PAD_LEFT);
- 1. 格式NSTimeInterval分钟:秒:毫秒
- 2. Javascript以毫秒为单位显示毫秒数:小时:无秒数分钟
- 3. 格式时间从秒到毫秒:秒:毫秒:微秒
- 4. 在JS秒表中格式化毫秒
- 5. javascript毫秒分析时间(分钟:秒)
- 6. 转换分钟到毫秒
- 7. Mp3将分钟转换为毫秒
- 8. 将毫秒转换为分钟
- 9. 如何将毫秒,秒,分钟,小时转换为SQL Server 2005中的天数?
- 10. 毫秒到秒?
- 11. 将时间转换为秒+毫秒秒
- 12. 倒计时秒数:毫秒
- 13. 毫微秒到毫微秒的转换毫秒数<999999在Java中
- 14. 毫秒PHP
- 15. 如何将秒表刻度转换为纳秒,毫秒和秒?
- 16. 以毫秒为单位的TImespan,以分钟和秒为单位
- 17. 如何将毫秒数转换为DateTime?
- 18. 如何将毫秒数转换为
- 19. 如何将日期格式转换为postgresql中的毫秒数?
- 20. 当毫秒数很长时,将毫秒添加到Java日期
- 21. 将毫秒转换为小时格式
- 22. 在毫秒中将毫秒转换为日期时间
- 23. 模拟毫秒为iPhone中的时钟
- 24. Java中的毫秒数
- 25. 毫秒级的jQuery秒表
- 26. 毫秒的MySQL
- 27. 以秒,毫秒显示datediff
- 28. 将jiffies转换为毫秒
- 29. 将Ecto.DateTime转换为毫秒
- 30. 将以毫秒为单位的unix秒数转换为POSIXct/POSIXlt
我们错了,你是对的;)++ 1 – 2009-12-02 16:37:26
它仍然是一个黑客,但如果你确定你的值将少于24小时,你可以使用'gmdate()'。 – soulmerge 2009-12-02 17:23:05
完美!太感谢了! – designvoid 2009-12-03 10:41:31