2017-02-25 12 views
1

イベントカレンダーを作成しようとしています。すべての日付はうまくいきますが、1月の1日が前月の最後になりました。私はそれがMSTに設定し、私はすべての日付などを格納していることがわかりMysql FROM_UNIXTIMEは、1月3日を2月28日に変換します。

$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の設定タイムゾーンを確認すること - ループでは

クエリの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"; 

- ここに私のMySQLのクエリですUTCフォーマット。この問題を解決するために、私はデフォルトのタイムゾーンUTCをMSTに変換して、私の問題を解決します。

関連する問題