2011-08-12 9 views
1

PHPとエコーの新しい日付の2つの日付を比較するにはどうすればよいですか?phpで2つの日付を比較し、新しい日付をエコーする方法は?

私の日付はdate("F j, Y, g:i a");のフォーマットです。August 12, 2011, 9:45 amとします。

私の日付は次のとおりである:何の価値行われている更新した場合

  • 日1 $created
  • 日付は2 $updated /任意の提案は大歓迎0000-00-00 00:00:00

ではありません。

+2

重複:http://stackoverflow.com/questions/2113940/php-compare-date – JMax

答えて

9
$date1 = new DateTime("August 12, 2011, 9:45 am"); 
$date2 = new DateTime("August 12, 2011, 10:45 am"); 

$never_date = ($date1<$date2)?$date1:$date2; 

echo $never_date->format("F j, Y, g:i a"); 

しかし、ノート、0000-00-00 00:00:00DateTime()の有効な入力ですが、期待通りに動作しないこと。 -0001-11-30 00:00:00(Win7 x64では少なくともPHP 5.3-VC9-nts)になります。

更新:私は0000-00-00 00:00:00

  • があなたのDBに、その列のNULL値を許可してDEFAULT 0000-00-00 00:00:00を削除することworkarouningの2つのオプションを参照してください。そう$createdを返す場合
  • チェック$updated == ''場合(空の文字列)と::

  • チェック$updated == '0000-00-00 00:00:00'もしそうであれば、ちょうど$created戻る

    if ($updated=='0000-00-00 00:00:00' || $updated=='') 
        $never_date = $created; 
    else 
        $never_date = ($created<$updated)?$created:$updated; 
    

私はそれが0000-00-00 00:00:00を表示する権利行動だということを疑います決して更新されなかったレコードのために。

+1

+1のDateTime。 –

+0

@ JOHN - 日付の前の値を知らずにやる方法は? E.Gがデータベースに保存されます – Iladarsda

+0

DateTimeに有効な日付文字列があればそれを受け取ります。 http://www.php.net/manual/en/datetime.construct.php – J0HN

1

は、タイムスタンプに日付を変換します

if (strtotime($created) > strtotime($updated)) 
{ 
// ... 
} 
else 
{ 
// ... 
} 
関連する問題