2015-08-13 38 views
0

幾天前我剛開始使用php。我正在嘗試獲取特定日期的星期幾。php:使用「日期」函數從給定日期開始的一週中的某一天:提前一天獲得預期答案

$firstmonthdate = strtotime("7/1/2015"); 
//print what my timezone is, for clarity's sake for this question 
$myTimezone = date_default_timezone_get(); 
echo $myTimezone."\n"."first day = ".date("r",$firstmonthdate); 

我獲得以下這段代碼的輸出:

Asia/Singapore 
first day = Wed, 01 Jul 2015 00:00:00 +0800 

到目前爲止好。我的問題是在代碼的下一行:

echo "first day = ". strtolower(date("D",$firstmonthdate))."\n"; 

此行的代碼的輸出是:

first day = thu 

從上面可以看出,正確的答案是wed但我正在逐漸thu和我完全困惑。這可能是由於新加坡和格林威治標準時區不同,但我不知道爲什麼以及如何解決它。如上所示,我已經正確設置了本地時區,並且正通過本地筆記本電腦上的CLI界面運行。本地網絡服務器也提取相同的php.ini文件。

有什麼建議在這裏出了什麼問題?

非常感謝。

+0

嘗試你的代碼之前添加此使用:'date_default_timezone_set('亞洲/新加坡);',看看有沒有什麼幫助? – MikeK

+0

嘗試了此建議,但輸出保持不變。感謝您查找問題。 –

回答

2

它,因爲你已經中錯字您的變量

echo "first day = ". strtolower(date("D",$firsmonthdate))."\n"; 
              ^^ 

相反,它應該是

echo "first day = ". strtolower(date("D",$firstmonthdate))."\n"; 
              ^^ 

如果您error_reporting是,那麼你會得到一個Notice: Undefined variable: firsmonthdate

你需要採取關心日期在PHP。正如在這裏你都拿到 日期是1970-01-01,如果它在另一個表現則其Thu, 01 Jan 1970 00:00:00 +0000

+0

對不起,但這個錯字是在我寫的代碼中,而不是在我的文件中。對這個錯誤抱歉。我現在在這裏編輯了這個問題。感謝您指出。 –

+0

我在代碼的另一行發現了這個錯字。不能相信我錯過了這一個。沒有錯誤報告。我現在要查找如何打開錯誤報告。非常感謝您的幫助。對不起愚蠢的問題:( –

+0

不客氣,很高興幫助 –

相關問題