2015-11-25 72 views
1

我需要的最後一個星期日的Unix時間戳記晚上8點,所以我嘗試:PHP:strototime上週日晚上8點

strtotime("last sunday 8 pm"); 

這個偉大的工程,但如果是22-11-2015晚上9點例如,輸出是15-11-2015 8 PM而不是一小時前。上述方法除了在星期日的最後四個小時內運作良好。我怎樣才能得到22-11-2015 8 PM

+0

什麼時區你測試這個,你有什麼你的PHP時區設置爲? –

+0

UTC + 1,但這有什麼關係? – Rapti

+0

因爲如果你在下午9點檢查_local time_,並且PHP認爲它與你的時區不同,那麼根據它設置爲 –

回答

1

正確的,但更長的時間,方式來完成這個任務

if((date('D',time()) == 'Sun') && (time() > strtotime('today 8 pm'))){ //if today is sunday and after 8pm, give todays date. 
    $unix = strtotime('today 8 pm'); 
} 
else{ //not sunday today, return last sunday. 
    $unix = strtotime('last sunday'); 
} 

哈克/原始代碼: 你可以檢查從明天日期「上週日晚上8點」。

strtotime('last sunday 8 pm', strtotime('tomorrow')); 
+1

然後當你在週日晚上7點檢查最後一個星期日晚上8點會發生什麼?我認爲這會給你錯誤的答案 –

+0

這確實是一個問題。現在,'echo date(「d.m.Y H:i:s」,strtotime('last wednesday 11 pm',strtotime('tomorrow')));''返回'25-11-2015 23:00:00'。我當地的時間是「25-11-2015 22:12:15」。 – Rapti

+0

啊。說實話,這一點代碼有點怪異。由於@ vascowhite在您的原始文章中留言,您需要編寫自定義代碼。我會編輯我的答案。 – Daniel

相關問題