Как сравнить две даты в 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 { // ... }