1

そのため、私の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
4

5 に答える 5

1

現在のコードには構文エラーがありますが、機能するものにかなり近いです。

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'");
于 2012-11-14T09:01:04.977 に答える
1

SQLクエリに追加できますか?

SELECT * FROM tablename WHERE Datum < now();
于 2012-11-14T08:54:49.623 に答える
0

mysqlの日付形式は

$date = new DateTime();
$date = $date->format('Y-m-d H:i:s');

if ( $row['Datum'] < $date) { Code to execute }
于 2012-11-14T08:52:00.870 に答える
0

まず、php呼び出しで日付の形式が間違っています。mysqlの日付の形式はです"Y-m-d H:i:s"。第二に、これを行う必要はありません。代わりに、次を使用できます。

if(strtotime($row['Datum']) < time()) { // Code to execute }

これにより、mysqlの日付がタイムスタンプに変換され、現在のタイムスタンプと比較されます。

于 2012-11-14T08:53:36.047 に答える
0

日付がISO8601形式「YYYY-MM-DDHH:II:SS」と一致する場合は、strtotime関数を使用して文字列をUnixタイムスタンプに変換できます。

于 2012-11-14T08:56:15.903 に答える