Не делайте сравнения даты / времени в PHP, если вы извлекаете эти значения из базы данных. Это включает в себя двойное обратное преобразование: дата / время -> текст -> дата-время. Вы можете сделать то же самое на уровне базы данных:
SELECT ...
FROM table
WHERE datetimefield < now()
, что позволяет использовать индексы (хорошо) и исключает два преобразования типов (также хорошо).
Что касается времени смены пользователя - ну, это просто машина пользователя. Если вы не делаете это как часть приложения для продажи, то у пользователя нет абсолютно никакого способа повлиять на время на вашем сервере базы данных.