Сравнение даты ("Y-m-d h:i:s");
Как я могу сделать условное утверждение, например, если дата ("Y-m-d h:i:s"); более чем через 30 секунд после даты ("Y-m-d h:i:s");.
Ранее я использовал что-то вроде даты ("Y-m-d h:i:s"); <дата ("Y-m-d h:i:s"); +30, однако это, похоже, не работает.
Помочь?
4 answers
Использовать strtotime()
чтобы преобразовать их в время UNIX.
Например:
if(strtotime($date2) - strtotime($date1) > 30) {
// $date2 is more than 30 seconds after $date1
}
Или
if(abs(strtotime($date2) - strtotime($date1)) > 30) {
// $dates are more than 30 second apart
}
Используйте strtotime() для преобразования обеих дат в метку времени unix, затем добавьте требуемое количество секунд ко второму и выполните сравнение целых чисел.
Вместо этого используйте unixtime. Просто преобразуйте вашу дату ("Y-m-d h:i:s"); в дату ("U") или просто время (). strototime() может помочь вам в этом. Он показывает время в секундах с эпохи Unix (1 января 1970 года 00:00:00 по Гринвичу). Тогда этот метод $unixtime +30 также будет работать нормально;)
Похоже, вы пытаетесь сравнить поля даты базы данных (например, mysql DATETIME
). Используйте функции даты и времени систем баз данных для сравнения значений дат (например, DATE_ADD()
или +
и с простыми <
или >
в MySQL).