Как сравнить две даты в php и echo более новые?
Мои даты даны в следующем формате: date("F j, Y, g:ia"); которые дают нам August 12, 2011, 9:45 am .
Мои даты следующие:
$created $updated / если обновленная информация не была сделана, значение 0000-00-00 00:00:00 Любое предложение очень ценится.
$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:ia");
Но обратите внимание, что 0000-00-00 00:00:00 является допустимым входом для DateTime() , но не будет работать должным образом. Это приведет к -0001-11-30 00:00:00 (по крайней мере для PHP 5.3-VC9-nts на Win7 x64).
Обновление: я вижу два варианта для работы, которые 0000-00-00 00:00:00
DEFAULT 0000-00-00 00:00:00 . $updated == '0000-00-00 00:00:00' ли $updated == '0000-00-00 00:00:00' и если да, просто верните $created : Проверьте, $updated == '' ли $updated == '' (пустая строка), и если это так возвращает $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 для записи, которая никогда не обновлялась.
Преобразование даты в метку времени:
if (strtotime($created) > strtotime($updated)) { // ... } else { // ... }