Рейтинг:
2
Jochen Arndt
Всегда храните даты и время в формате UTC и в двоичном формате. Тогда у вас не будет проблем с часовыми поясами, разницей во времени и преобразованиями строк. Избегайте также получения времени из разных источников (особенно из клиентских систем).
Member 13637584
Как я могу установить его в UTC? Я использую базу данных MySQL
Jochen Arndt
Как вы теперь его устанавливаете?
MySQL хранит datetimes внутренне всегда в UTC, но использует часовой пояс сеанса при установке или запросе datetimes. Таким образом, он должен работать уже тогда, когда позволяет SQL вычислять разность времен. Чтобы получить время в UTC, используйте UTC_TIMESTAMP(). См.также CONVERT_TZ (). Вы также можете настроить MySQL на использование UTC вместо системного часового пояса.
Member 13637584
Я пробовал это сделать, но теперь он дает мне 2 часа, но мне нужно 3 часа дня.
Jochen Arndt
Как вы устанавливаете метку времени?
Переход из кода или использование SQL?
С MySQL использование NOW() для установки lastactive и получения разницы между NOW() и lastactive должно работать.
Member 13637584
У меня есть таблица обновления набора lastActive= NOW (), но его ок нужно изменить время сервера. Как я могу рассчитать разницу сейчас от последнего входа в систему??
Jochen Arndt
TIMESTAMPDIFF(MINUTE, tableName.lastActive, NOW())
или другой блок по мере необходимости.
Member 13637584
Говорит вызов неопределенной функции timestampdiff?
Jochen Arndt
Это функция MySQL. Вы действительно используете MySQL или назвали его PHP-кодом (вне команды SQL)?
Member 13637584
Как я могу назвать его PHP?
Jochen Arndt
Вы должны вызвать его как часть команды SQL, потому что это функция MySQL. Если это не сработает, то ваша база данных-это не MySQL!
Вы могли бы это раздражало именование с MySQL из PHP-интерфейса базы данных. Но он также может быть использован с другими движками баз данных, кроме MySQL.
Если это так, вы должны прочитать о том, как используемая база данных хранит и обрабатывает даты.
Member 13637584
Моя база данных-MySQL. Я попытался вставить его, но это ошибка. Можете ли вы помочь с заявлением?
Jochen Arndt
Все что я могу сделать это указать на документацию:
https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html