そのため、私のphpスクリプトでは、現在の時刻(date())をmysqlデータベースの時刻と比較していますが、機能しません。どうすればよいですか?PHP
if($row['Datum'] < date(Y-m-d-H-i-s)) { Code to execute}
Mysql DATETIME
2012-11-13 17:00:00
現在のコードには構文エラーがありますが、機能するものにかなり近いです。
if ($row['Datum'] < date('Y-m-d H:i:s')) {
// Code to execute
}
これはループ内にある可能性が高いため、次の出力をキャッシュする必要がありますdate()
。
$now = date('Y-m-d H:i:s');
// loop here
foreach ($rows as $row) {
if ($row['Datum'] < $now) {
// code to execute
}
}
クエリで直接比較することもできます。
$now = date('Y-m-d H:i:s');
$db->query("SELECT * FROM whatever WHERE Datum < '$now'");
SQLクエリに追加できますか?
SELECT * FROM tablename WHERE Datum < now();
mysqlの日付形式は
$date = new DateTime();
$date = $date->format('Y-m-d H:i:s');
if ( $row['Datum'] < $date) { Code to execute }
まず、php呼び出しで日付の形式が間違っています。mysqlの日付の形式はです"Y-m-d H:i:s"
。第二に、これを行う必要はありません。代わりに、次を使用できます。
if(strtotime($row['Datum']) < time()) { // Code to execute }
これにより、mysqlの日付がタイムスタンプに変換され、現在のタイムスタンプと比較されます。
日付がISO8601形式「YYYY-MM-DDHH:II:SS」と一致する場合は、strtotime関数を使用して文字列をUnixタイムスタンプに変換できます。