2017-02-25 65 views
1

我正在嘗試創建一個活動日曆。所有日期都正常,但任何一個月的第一個月都成爲上個月的最後一個月。這裏是我的MySQL查詢 -Mysql FROM_UNIXTIME將第一個3月轉換爲2月28日

查詢1

$sql = "select DATE_FORMAT(FROM_UNIXTIME(post_date), '%Y') as mnth, 
       DATE_FORMAT(FROM_UNIXTIME(post_date), '%M') as yr 
     from ".EVENT." 
     GROUP BY (DATE_FORMAT(FROM_UNIXTIME(post_date), '%M %Y')) 
     ORDER BY(post_date) ASC limit $offset ,$limit"; 

在環 -

$loop="SELECT * 
     FROM ".EVENT." 
     WHERE event_status='1' 
      AND DATE_FORMAT(FROM_UNIXTIME(post_date), '%Y')=".$result['mnth']." 
      AND DATE_FORMAT(FROM_UNIXTIME(post_date), '%M')='".$result['yr']."' 
     ORDER BY(post_date) ASC" ; 
+0

您不應該在間接存儲的時間戳列上使用'FROM_UNIXTIME'。 MySQL知道如何處理它們。 'FROM_TIMESTAMP'可能有服務器時區相關的問題。 – apokryfos

+0

感謝您的快速回復。我如何更改服務器時區? –

+0

你不應該這樣做。刪除'FROM_UNIXTIME'有助於解決問題嗎? – apokryfos

回答

0

通過檢查MySQL的集時區我發現它在MST設置和我所有存儲日期UTC格式。爲了解決這個問題,我只是將我的默認時區UTC轉換爲MST,並解決了我的問題。

相關問題