0

こんにちは、私はこのコードを持っています

if  ((date('m/d/Y' , $row->dates)) <= (date('m/d/Y', strtotime("-3 day"))) )

基本的な考え方は、データベース ($row->dates) から日付を取得し、今日の日付がデータベースの日付よりも 3 日以上進んでいるかどうかを確認することです。

これは、2012 年の日付から 2013 年のヒットまで完全に機能していました。2012 年を含むプルされた日付に対して常に else 条件にヒットし、2013 年の日付が完全に機能するようになりました。

データベースに保存される日付は、UNIX タイムスタンプ形式、つまり 1351141261 です。

2 つの日付を比較する際にどこが間違っているのか、よくわかりません。明らかに、年のセクションに物事を台無しにする何かがあります。誰でも助けてもらえますか?

4

3 に答える 3

2

なぜ日付を文字列に変換するのですか?

$row->dates <= strtotime('-3 days')
于 2013-01-16T21:15:03.493 に答える
2

そのためにMySQLの組み込み関数を使用しないのはなぜですか

SELECT randomdate WHERE randomdate >= DATE_ADD(CURDATE(), INTERVAL -3 DAY);
于 2013-01-16T21:16:31.743 に答える
1

フォーマットされた文字列としてではなく、タイムスタンプとして比較します。

問題は、それらが最大から最小の大きさの順序になっていないことです。

たとえば、 としてフォーマットしたY-m-d場合、順序は実際には正しくなります。

(技術的に言えば、PHP は文字列を辞書順に比較します。)

于 2013-01-16T21:15:11.043 に答える