В php время нормальное, в бд кривое.
Пытаюсь поправить так - SET GLOBAL time_zone ='MSK'.
Не дает, говорить только суперпользователь может.
Не пойму как это? У меня один пользователь, со всеми правами.
Как поправить?
я не парюсь и каждый раз при соединении кидаю
SET time_zone = '+X:00'
потому что запарился с различными хостингами во-первых и если что есть расширение под международное время во-вторых. Что-то вроде мультиязычки, но по времени.
Суперпользователь тот у кого grant access, обычно root. Но можно и другого задать. Обычно хостеры не дают своим юзерам таких привелегий.
Цитата |
я не парюсь и каждый раз при соединении кидаю
SET time_zone = '+X:00' |
Куда это нужно прописать? Не пойму
Я подключаюсь к БД так
function connect() {
$database = new mysqli($this->server, $this->login, $this->password, $this->table);
mysqli_set_charset($database, 'utf8');
if (!$database) {
Цитата (Reh @ 6.12.2015 - 10:31) |
Куда это нужно прописать? Не пойму |
Это обычным запросом, как тот же SELECT. ) Выставляем таймзону для текущего соединения.
Один раз на весь сеанс.
не помогло, время не поменялось
$db->query("SET time_zone = 'Europe/Moscow'");
_____________
Принимаю заказы, писать в ЛС
Цитата |
$db->query("SET time_zone = 'Europe/Moscow'"); |
Ошибка при запросе к базе данныхUnknown or incorrect time zone: 'Europe/Moscow'bool(false)
Reh, тип поля-то в БД какой?
_____________
Стимулятор ~yoomoney - 41001303250491
Цитата (Reh @ 6.12.2015 - 11:40) |
timestamp |
Хранит 4-байтное целое число, равное количеству секунд, прошедших с полуночи 1 января 1970 года по усреднённому времени Гринвича (т.е. нулевой часовой пояс, точка отсчёта часовых поясов). При получении из базы отображается с учётом часового пояса. Часовой пояс может быть задан в операционной системе, глобальных настройках MySQL или в конкретной сессии. Запомните, что сохраняется всегда количество секунд по UTC (универсальное координированное время, солнечное время на меридиане Гринвича), а не по локальному часовому поясу.
_____________
Принимаю заказы, писать в ЛС
CREATE TABLE IF NOT EXISTS `tizo` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`tz` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
INSERT INTO `tizo` (`id`, `tz`) VALUES
(1, NOW());
SET time_zone = '+0:00';
SELECT * FROM `tizo` WHERE 1;
Открой PMA создай таблицу и выполни запроы (сразу два)
_____________
Стимулятор ~yoomoney - 41001303250491
Изменить текущую зону для локального соединения:
SET time_zone = 'MSK';
или
SET time_zone = '+03:00';
Для всего MySQL сервера часовой пояс можно поменять установив в файле конфигурации:
default-time-zone='MSK'
или под привилегированным пользователем выполнить запрос:
SET GLOBAL time_zone ='+03:00';
_____________
Принимаю заказы, писать в ЛС
Медведьэто я тоже пробовал
https://www.opennet.ru/tips/1810_timezone_date_time.shtmlValickна три часа отстает от текущего
Reh, значит всё работает. Время у тебя Московское?
_____________
Стимулятор ~yoomoney - 41001303250491
Да, я в Ярославле.
А почему он время не верное записал?
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.