2013-09-26 3 views
-3

на самом деле у меня есть 2 DateTime объектысравнить два DateTime объекты

$d1 = new DateTime('04/14/2013 8.00 AM'); 
$d2 = new DateTime('04/14/2013'); 

так, не делая каких-либо изменений в этих 2-х объектов. возможно ли равным этим двум объектам.

+0

Ваш вопрос непонятен, какой желаемый результат? – Mario

+0

Мне нужно сравнить эти 2, используя только дату (04/14/2013), не учитывая время (8.00) – user2047701

ответ

0

Да, вы можете использовать встроенный метод diff для объектов DateTime;

$interval = $d1->diff($2); 

Heres руководство для него: DateTime::diff

Тогда, чтобы получить только дни вы можете форматировать интервал как этот

$interval = $interval->format('%d'); 
1

Чтобы получить разницу между двумя объектами DateTime, использовать DateTime: : diff():

$interval = $d1->diff($d2); 

В результате вы получите DateInterv аль-объект. Чтобы получить отформатированный разницу во времени от метода DateInterval объекта, использование формата(), например:

echo $interval->format('%s seconds'); 

Вы можете увидеть больше примеров сравнения объектов DateTime here. Также проверьте how to use format() method.

0

Вы можете форматировать даты, чтобы сдирать время как:

if ($d1->format('m/d/Y') == $d2->format('m/d/Y')) 
    echo 'equal'; 
else 
    echo 'not equal'; 

или как это:

if (date_format($d1, 'm/d/Y') == date_format($d2, 'm/d/Y')) 
    echo 'equal'; 
else 
    echo 'not equal'; 

date_format поместит даты в этом формате: 04/14/2013

Вы должны сделать date_format на $ d2, потому что это действительно «2013-04-14 00:00:00».

Смежные вопросы