[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: время в БД
Reh
В php время нормальное, в бд кривое.
Пытаюсь поправить так - SET GLOBAL time_zone ='MSK'.
Не дает, говорить только суперпользователь может.
Не пойму как это? У меня один пользователь, со всеми правами.
Как поправить?
Ron
я не парюсь и каждый раз при соединении кидаю

SET time_zone = '+X:00'

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

Суперпользователь тот у кого grant access, обычно root. Но можно и другого задать. Обычно хостеры не дают своим юзерам таких привелегий.

Reh
Цитата
я не парюсь и каждый раз при соединении кидаю

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) {
Ron
Цитата (Reh @ 6.12.2015 - 10:31)
Куда это нужно прописать? Не пойму

Это обычным запросом, как тот же SELECT. ) Выставляем таймзону для текущего соединения.

Один раз на весь сеанс.

Reh
не помогло, время не поменялось
Миша
$db->query("SET time_zone = 'Europe/Moscow'");


_____________
Принимаю заказы, писать в ЛС
Reh
Цитата
$db->query("SET time_zone = 'Europe/Moscow'");

Ошибка при запросе к базе данныхUnknown or incorrect time zone: 'Europe/Moscow'bool(false)
Valick
Reh, тип поля-то в БД какой?

_____________
Стимулятор ~yoomoney - 41001303250491
Reh
timestamp
Миша
Цитата (Reh @ 6.12.2015 - 11:40)
timestamp

Хранит 4-байтное целое число, равное количеству секунд, прошедших с полуночи 1 января 1970 года по усреднённому времени Гринвича (т.е. нулевой часовой пояс, точка отсчёта часовых поясов). При получении из базы отображается с учётом часового пояса. Часовой пояс может быть задан в операционной системе, глобальных настройках MySQL или в конкретной сессии. Запомните, что сохраняется всегда количество секунд по UTC (универсальное координированное время, солнечное время на меридиане Гринвича), а не по локальному часовому поясу.

_____________
Принимаю заказы, писать в ЛС
Valick
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';


_____________
Принимаю заказы, писать в ЛС
Reh
Медведь
это я тоже пробовал
https://www.opennet.ru/tips/1810_timezone_date_time.shtml

Valick
на три часа отстает от текущего
Valick
Reh, значит всё работает. Время у тебя Московское?


_____________
Стимулятор ~yoomoney - 41001303250491
Reh
Да, я в Ярославле.
А почему он время не верное записал?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.