Просто добавим, что некоторые скажут, что хранение времени UNIX в виде простого старого поля int в базе данных является более гибким и переносимым решением. Кроме того, вставки и обновления происходят быстрее, потому что они включают в себя только хранение простых целых чисел. Это действительно зависит от того, сколько манипуляций с датами вам нужно сделать на уровне базы данных. Я стремлюсь к переносимости и выполняю все вычисления даты в PHP. Чтобы сохранить текущую метку времени, я бы просто вставил в целочисленный столбец вывод:
strtotime('now');
или
time();
, которые оба возвращают текущую (unix) временную метку. После этого сравнение дат может быть выполнено путем извлечения меток времени из базы данных и выполнения простой арифметической операции, такой простой, как:
if($tsFromDb > strtotime('+28 days')) {
echo 'it is the future, zombies!';
}
Это действительно зависит от того, для чего вы используете даты.