PHP Сравнить Datetime - PullRequest
       5

PHP Сравнить Datetime

0 голосов
/ 14 февраля 2011

У меня следующая проблема. Я пытаюсь сравнить два значения даты и времени в PHP, но вычисления неверны. Разница составляет около 8 часов. Я использую WAMPServer

на своей машине для разработки
if(strtotime($date_time_from_db) < time())
{
    // do something
}

Значение даты и времени в базе данных имеет следующий формат: Y-m-d H: i: s. Как я могу сделать это точно? Кроме того, является ли использование time () хорошей идеей? Что произойдет, если пользователь изменит время на своем компьютере?

Большое спасибо!

1 Ответ

2 голосов
/ 14 февраля 2011

Не делайте сравнения даты / времени в PHP, если вы извлекаете эти значения из базы данных. Это включает в себя двойное обратное преобразование: дата / время -> текст -> дата-время. Вы можете сделать то же самое на уровне базы данных:

SELECT ...
FROM table
WHERE datetimefield < now()

, что позволяет использовать индексы (хорошо) и исключает два преобразования типов (также хорошо).

Что касается времени смены пользователя - ну, это просто машина пользователя. Если вы не делаете это как часть приложения для продажи, то у пользователя нет абсолютно никакого способа повлиять на время на вашем сервере базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...