2011-07-11 73 views
2

我有一個包含date()函數的php腳本。但不知怎的,它將這一天的名字弄亂了。php日期函數返回錯誤日期

線是一樣簡單

date ("l",mktime(0,0,0,$test3,$test2,$test4)); 

當我與當前日期測試它例如

date ("l",mktime(0,0,0,11,07,2011)); 

它返回星期一的正確日期。但是,如果我去短短一天進一步

date ("l",mktime(0,0,0,12,07,2011)); 

返回週三..

你有任何想法,問題可能是什麼?任何與時區或任何東西..?我從來沒有使用日期功能,並找不到任何解決方案googeling它或在這裏..

我欣賞任何答案! thx提前!

+0

您應該從「07」中刪除前導0。 mktime期望整數,但會將前導零解釋爲一個字符串,並可能產生意想不到的結果。 – Jrod

+0

Thx everyone!簡單的解決方案.. ^^我在執行時必須閱讀錯誤的文檔..或者,也許我只是讀錯了;;)謝謝大家的快速答案! – Sebsemillia

回答

2

mktime()的第四個參數是月份。 2011年11月7日是星期一,但2011年12月7日是星期三。

int mktime (
    [ int $hour = date("H") 
    [, int $minute = date("i") 
    [, int $second = date("s") 
    [, int $month = date("n") 
    [, int $day = date("j") 
    [, int $year = date("Y") 
    [, int $is_dst = -1 ] 
    ]]]]]]) 

此外,你應該刪除前導零(07 => 7)以避免意外錯誤。

來源:http://www.php.net/mktime

1

你正在改變的月份沒有一天

int mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]]) 
1

奇怪,因爲它看起來,PHP的文件說,第四個參數實際上是在本月(11或12的例如),而第五(07)是一天。嘗試切換這些並再次嘗試。