1

MySQL データベースにイベントを格納し、開始日時を UNIX 形式の「startTimeStamp」列に格納しています。

簡単なクエリを使用して特定の日付のイベントを取得しようとすると

SELECT * FROM eventsWHERE FROM_UNIXTIME( startTimeStamp, '%Y-%m-%d') = '2013-08-20'

タイムスタンプの下の日付と時刻が午前 2 時 (つまり、2013-08-20 03:00:00) よりも大きい場合はすべて正常に機能しますが、それより前の場合は同じ日に表示されません。

簡単な例: 2 つのイベントがあります - 同じ日付で時間は異なります

  1. 2013-08-20 03:00:00 (1376960400)
  2. 2013-08-20 00:00:00 (1376949600)

前述のクエリを実行すると最初のものは取得されますが、2 番目のものは取得されません。2 番目のものを取得するには、前日 (2013-08-19) のイベントを照会する必要があります。

理由はわかりますか?多分私は何かを逃していますか?

どうもありがとう!

4

4 に答える 4

0

次のように使用します。

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

このリンクから必要な形式を使用できます

于 2013-08-19T12:03:34.503 に答える
0

これは基本的に、Unix タイムスタンプの意味によるものです。これは 1970 年 1 月 1 日からの秒数にすぎないため、タイムゾーンによっては、技術的には 1376949600 の値が前日になる可能性があります。

私の場合:

echo date("d-m-Y h:i", 1376949600);
// output: 19-08-2013 11:00
于 2013-08-19T11:37:28.330 に答える