Мне возвратили запись из MySQL, который имеет поле даты и времени. То, что я хочу сделать, принимают это значение и видят, является ли это более старым затем 24 часа, я предполагаю, что время PHP's использования () получает текущее время.
В данный момент, если я повторяю их, я добираюсь:
1276954824 this is php's time()
2010-06-19 09:39:23 this is the MySQL datetime
Я предполагаю, что лучший является временем Unix? Играли вокруг с strtotime, но с не много успеха..
ЛЮБОЕ приветствие справки!
Нет успеха?
echo strtotime("2010-06-19 09:39:23");
дает мне
1276940363
(mktime(9, 39, 23, 6, 19, 2010)
дает то же время, поэтому синтаксический анализ работает правильно)
Чтобы получить разницу в секундах, вы можете вычесть метки времени, например,
$diff = time() - strtotime("2010-06-19 09:39:23");
Если разница больше 86400 (60*60*24) секунд, то метки времени с разницей более одного дня:
if(time() - strtotime("2010-06-19 09:39:23") > 60*60*24) {
// timestamp is older than one day
}
Вы также можете сделать:
SELECT * FROM my_table WHERE timestamp < NOW() - INTERVAL 1 DAY;
Почему вы смешиваете время PHP и время MySQL?
Вместо этого выполните сравнение непосредственно в MySQL:
Чтобы получить текущую дату / время в MySQL, используйте функцию NOW ()
. Вы можете сравнить, например, 2010-06-19 09:39:23 '
Это позволит проверить, соответствует ли данная дата (предположительно в столбце) старше 24 часов.
Если абсолютно необходимо преобразовать метку времени MySQL в метку времени UNIX, для этого можно использовать функцию MySQL UNIX_TIMESTAMP ()
.