2012-04-11 51 views
0

爲什麼$ now2沒有工作?php加入時間

$now = date('Y-m-d H:i:s', time()); 
$now2 = date("Y-m-d H:i:s", strtotime("$now + 0.5 secs")); 

或者我怎樣才能使它工作?

+0

格式化由於UNIX時間戳有一個決議1秒,那不可能工作。 – deceze 2012-04-12 00:15:30

回答

2

原因其現在的工作是因爲PHP不承認0.5 secs具有有效

0.5 secs是不是一個有效的日期格式..但它是一個有效的microtime

嘗試

$now = date('Y-m-d H:i:s', time()); 
var_dump(strtotime("$now + 1 secs")); 

輸出

int 1334188908 
1

Unix時間戳的分辨率(這是time()返回的值)僅爲1秒。所以你不能給它增加一半的時間。

2

time()返回自紀元以來的數量。它幾乎不知道什麼。你需要使用microtime()如果你需要這個級別的精度(參見:http://php.net/manual/en/function.microtime.php

編輯:你當然不能在date()格式中使用microtime,所以你需要事先做一個計算然後使用它。類似:

$now = microtime(true); 
$newtime = $now + 0.5; 

echo date("Y-m-d H:i:s", round($newtime,0)); 

根據您的要求,您可能更願意使用比圓形不同的功能(),使$ NEWTIME和整數再適合與日期()

+0

這是錯誤的..刪除或更正它...'日期('YMD H:我:S',microtime());'是不是一個有效的格式http://codepad.viper-7.com/Hc4qfE – Baba 2012-04-12 00:27:41

+0

我沒有想到它會以這種方式使用。已經修改我的答案是更清楚 – 2012-04-12 00:43:56

+0

這仍然不是一個有效的方式來添加0.5秒....您的代碼將它舍入到1秒 – Baba 2012-04-12 00:46:24