2014-02-19 5 views

ответ

3

Интересный факт о дате/времени: Если вы держите их в большом формате обратного порядка (т. Е самый левый элемент является самым большим), то они могут быть отсортированы как строки.

Пример: Y-m-d (aside) даст даты как 2014-02-19, которые вы можете сравнить в виде строки на другую дату, например, 2014-01-29, чтобы получить результат (в данном случае, первый больше).

Время: H:i big-endian (часы больше, чем минуты), и в результате вы можете сравнить вещи как 14:23 с 09:12 успешно.

PITFALL: Всегда используйте нумерованные версии таких вещей, как число дней и часов, в противном случае сравнение будет неправильным для значений менее 10. Кроме того, вы не можете использовать 12-часовое время, если не поместите AM/PM до Час в вашем формате (потому что это сохранит законность).

Я использую это много для сравнения дат^_^

+0

Так как же я на самом деле сравнить два? 2014-02-19 & 2014-02-29 – user2799603

+1

'<', '>' и '==', как и все остальное. –

+0

Действительно? Данг это хорошо! – user2799603

2

Используйте diff() функция из класса DateTime. http://www.php.net/manual/en/datetime.diff.php

<?php 
$datetime1 = new DateTime('2009-10-11'); 
$datetime2 = new DateTime('2009-10-13'); 
$interval = $datetime1->diff($datetime2); 
echo $interval->format('%R%a days'); 
+0

Спасибо! Тем не менее, формат даты 05:43, 13:21, 23:59 ... и т. Д. Будет ли это работать? – user2799603

+0

Для сравнения даты и времени вы можете просто использовать время, которое у вас есть. Если вы хотите получить полную дату из функции 'date ('H: i')', вы можете использовать 'strtotime (date ('H: i'))', чтобы получить отметку времени сгенерированного времени. – frietkot

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