2012-04-07 69 views
4

我從http://www.phpcodeworks.com/pec/installation下載活動日曆。我使用PHP 5.3.X因此瀏覽器說F:\ XAMPP \ htdocs中\ MSJ \的functions.php所以我代替:mktime VS時間PHP4 VS PHP5

$days = date("t", mktime(0,0,0,$month,1,$year)); 

有:

$days = date("t",` time(0,0,0,$month,1,$year)); 

但這樣做每個日期變爲24小時回來如下。使用$days = date("t", time(0,0,0,$month,1,$year));

enter image description here

圖片:使用$days = date("t", mktime(0,0,0,$month,1,$year));

圖片

enter image description here

+0

我改進了內聯和分組代碼格式(可能需要幾分鐘時間才能獲得批准),所以問題更加清晰 - 但屏幕截圖爲+1! – halfer 2012-04-07 10:44:38

+2

檢查您的錯誤報告是否在E_ALL上,並確保沒有警告和通知。另外,這個問題可能會歸結爲時區:沒有時區的午夜可能會回到應用時區的前一天。 – halfer 2012-04-07 10:46:14

+1

據我所知'時間'函數不採取任何參數。 請參閱http://php.net/manual/en/function.time.php – Machiel 2012-04-17 10:11:09

回答

10

mktime()函數返回從Unix紀元秒的時間(1970年1月1日00:00 :00 GMT)作爲參數提供的日期和時間。

time()函數可以縮短從Unix Epoch(1970年1月1日00:00:00 GMT)到函數運行時刻的時間。沒有參數傳遞。

所以瀏覽特定日期的時候,你就需要使用mktime()代替time()time()每次運行它的時候會不斷返回不同的數字。因此,每次查看日曆時都會更改日曆(即使您正在查看特定日期)。

Hightlight:

mktime() - 時間在表示指定日期(參見所需的參數的文檔)秒。

time() - 以秒錶示的時間(此功能沒有參數)。

mktime()看起來適合這種情況。