私のデータベースにはUNIXタイムスタンプがあります。今私は2ヶ月前の結果しか得ません。2か月以上経過したデータベースからのエントリのみを表示
2か月以上経過したエントリが表示されるため、これは機能しません。
$unixbefore2months = strtotime('-2 month');
$query = 'SELECT * FROM table WHERE time > "'.$unixbefore2months.'"';
だから私は自分の作成時間を2ヶ月前に時間を決定したタイムスタンプ(今から)とデータベース内のエントリを持っています。
'echo $ unixbefore2months;'は1323272062です。 'echo date(" Y-m-d "、$ unixbefore2months);'は2011-12-07を与えます。 'echo $ query;' SELECT * FROM tbl WHERE time> 1323272062'を返します。時間はvarchar(50)で、 '1302689069'のような文字列が含まれています。 '$ query'を除いてすべてを検証しました。私は文字列を比較するときに私が間違っていると思った...しかし、今はうまくいくようです。私が何を変えたか分からない。 – testing
まあ、それも起こる。とにかく、UNIXのタイムスタンプをvarcharではなくINTフィールドに格納する必要があります。 –
違いを説明できますか? INTはなぜより良いのですか?より多くの値を格納できるからですか? – testing