2013-08-19 65 views
1

我有事件存儲在MySQL數據庫中,開始日期和時間存儲在UNIX格式的'startTimeStamp'列中。MySQL時間戳 - 正確的日子

當我嘗試使用簡單的查詢

SELECT *以獲取特定日期的事件FROM events WHERE FROM_UNIXTIME(startTimeStamp, '%Y-%間%d')= '2013年8月20日'

當時間戳下的日期和時間大於上午2點(即2013-08-20 03:00:00)時,一切正常,但當它早些時候它不在同一天顯示。

簡單的例子:我有兩個事件 - 相同的日期,但不同時間

  1. 2013年8月20日03:00:00(1376960400)
  2. 2013年8月20日00:00: 00(1376949600)

我會得到的第一個,當我運行之前提到的查詢,但沒有第二個。要獲得第二個我必須查詢事件從前一天(2013-08-19)

你知道爲什麼嗎?也許我錯過了什麼?

非常感謝!

+0

想可能是你應該設置默認時區爲哪種格式。 –

回答

0

我想你可能已經選擇了一個地方daylight saving time適用於。這種情況下的時間轉移大多在早上2點到3點之間完成,這可能會導致不同的日子。

0

這基本上是因爲Unix的時間戳的意思。這只是從1970年1月1日到1970年的秒數,因此技術上1376949600的價值仍可能在前一天,取決於您的時區。

在我的情況:

echo date("d-m-Y h:i", 1376949600); 
// output: 19-08-2013 11:00 
0

使用這樣的:

$d="1376960400"; 
echo date("Y-m-d",$d); 

你可以使用你從this link