Как работать с датами?

Здравствуйте.
Стоит следующая задача: из базы нужно достать записи за определенный промежуток времени. В базе дата хранится в числовом виде (например: 1449500400). На первый взгляд я вижу следующий вариант работы: преобразуем в нормальную дату и добавляем нужный промежуток через DateInterval, потом преобразуем обратно и ищем.
Но может быть есть более короткий способ прибавить например неделю к числу в миллисекундах?
Заранее благодарен всем отозвавшимся.
  • Вопрос задан
  • 191 просмотр
Решения вопроса 2
sanchezzzhak
@sanchezzzhak
Ля ля ля...
... WHERE created_at BETWEEN @a1 AND @a2

где @a1 = strtotime(date('2015-01-05 00:00:00'))
@a2 = strtotime('-20 days');
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
timestamp - это не милисекунды, а секунды. Соответственно неделя это 60*60*24*7.
Но это довольно грубый метод, он не учитывает перевод на летнее/зимнее время, високосные секунды и т.п..
Поэтому лучше использовать что-то типа strtotime('-20 days'); как советует Александр N++.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Adamos
@Adamos
MySQL самостоятельно умеет работать с датой и временем - в частности, приводить его к timestamp и прибавлять интервалы.
RTFM
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы