1

私は日付を比較するのが好きです(null値(0000-00-00)でデータベースから抽出します)。私はそのようにしようとします:

$dateValue = $row_recordset3['ttDateEnvoiDEP'];

if ($dateValue === '0000-00-00') {                  
    $dateEnvoiDEP = "CURRENT_DATE()";                   
}
else {
    $returnOK .= $dateValue;
    $dateEnvoiDEP = $row_recordset3['ttDateEnvoiDEP'];
} 

しかし、それは機能しません、あなたは理由を知っていますか?

4

3 に答える 3

1

SQLクエリで直接実行してみませんか、次のようになります。

SELECT   IF(ttDateEnvoiDEP = '0000-00-00', CURDATE(), ttDateEnvoiDEP) 
             as `ttDateEnvoiDEP`,
FROM     ...
WHERE    ...
于 2012-09-04T01:19:21.800 に答える
1

CURRENT_DATE()はMySQL関数であり、PHPではありません。

これを読んでください:http://php.net/date

また、現在の日付をその形式で使用する場合は、date('Y-m-d')2012-09-03または日付が何であれ返されます。

于 2012-09-04T00:45:32.817 に答える
0

PHPで日付を処理したい場合は、UNIXタイムスタンプを使用できます。詳細については、 phpの日時をお読みください

問題は、コードが0000-00-00を$dateValueと比較していることです。0000-00-00はnullではありません。ここで何をするのか明確ではありません。しかし、値が設定されているかどうかを知りたいと思います。だからあなたは試すことができます

isset($dateValue)

これがお役に立てば幸いです。

編集:

if(!isset($dateValue)){
    $dateEnvoiDEP = time();
}else{
//do other stuff
}
于 2012-09-04T01:06:37.893 に答える