2010-11-15 94 views

回答

10
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`', $milliseconds, $format), $timestamp); 
} 

echo udate('Y-m-d H:i:s:u'); // 2010-11-15 21:21:00:987 
+0

如何保留μsecs部分? – ollydbg 2010-11-15 13:32:21

+0

自從PHP 5.2.2以來,'date()'的'u'格式字符已經返回微秒。 http://www.php.net/manual/en/function.date.php – Aether 2010-11-15 13:44:25

+1

@Aether當我輸入'echo date('u');'我在PHP 5.3中得到'000000'我做錯了什麼? – WolfRevoKcats 2010-11-15 13:48:17

2

使用microtime()函數。

參見手冊頁面在這裏:http://php.net/manual/en/function.microtime.php

[編輯]要獲得年/月/日/小時的輸出的要求/分/秒/ MS:

嘗試是這樣的:

list($usec, $sec) = explode(" ", microtime()); 
$output = date('Y/m/d H:i:s',$sec). " /" . $usec; 

同樣,請參閱手冊頁以瞭解有關microtime()如何工作的更多詳細信息。

+0

它返回微秒,毫秒不。此外,如果您不作爲第一個參數傳遞true,它會返回'msec sec'字符串。 – ThiefMaster 2010-11-15 13:25:43

+0

手冊頁給出了使用返回值的例子;這就是爲什麼我聯繫到它。 – Spudley 2010-11-15 13:27:31

+0

μsecs很好,但我需要在年/月/日/小時/分鐘/秒/毫秒中得到結果... – ollydbg 2010-11-15 13:28:47

1

這是我的方式

list($usec, $sec) = explode(" ", microtime()); 
$time = date("Y-m-d H:i:s:",$sec).intval(round($usec*1000)); 
echo $time; 
相關問題