2012-03-31 61 views
7

我想創建一個從用戶當前日期開始的選擇列表。我希望它以unix時間戳格式設置爲午夜。爲什麼我的strtotime(「今日」)不起作用?

這是我做的:

$today = strtotime('today'); 
echo $today; 

這是我的結果:

1333144800 

是:星期五根據大紀元轉換

,2012年03月30 22:00:00 GMT
+3

看起來像服務器的時區設置爲GMT + 2,所以你實際上得到正確的結果。 – Niko 2012-03-31 16:28:33

+2

嚴重的是,* noone對此類事物的反應應該是「'strtotime'不起作用」。接下來呢,在'strlen'中有一個bug? – Jon 2012-03-31 17:57:36

回答

15

如果您希望strtotime()返回一個相對於UTC的時間戳(UTC時間爲00:00:00,而不是例如00:00:00 UTC + 2,那麼如果您的系統設置爲偏移2小時的時區UTC/GMT),您需要指定:

$today = strtotime('today UTC'); 
+0

哇,其工作, – 2016-07-22 08:08:42

+0

非常感謝 – 2016-07-22 08:09:03

0

您應該檢查php.ini文件中的時區配置。在我的情況(我住在薩爾瓦多),我不得不改變這樣的:

date.timezone = America/El_Salvador 
0

,您可能需要專門設置的時間還有一天:

$today_midnight = strtotime('today UTC 00:00'); 
5

GMT(+0)時間

echo $today = strtotime('today GMT'); 
echo "<br>" . $today = date("d-m-Y H:i:s", $today); 

我們期待您的服務器在運行格林尼治標準時間 - 這是最好的(與時間顯示機動更高版本)。如果沒有,你必須調整php.ini設置這個「date.timezone = GMT」。

當你完成後,你會看到00:00與我的代碼。

然後,你必須開發功能(即DisplayDate())在你的腳本,如果

  • 你不是在GMT地區正確顯示您的網站的日期
  • 或/和,如果你想爲你的用戶例如查看時區選擇的時區。

DisplayDate()應該包括對日光變化的支持(0或1小時/夏令時和冬令時)。