Время по Москве

ageres

Guest
Время по Москве

newdate = date("d-m-Y H:i:s", mktime($chasov, $minut, $sekund, $mes, $dat, $year))."<br />";

^^
меняет время на московское (-3 часа), изначально время передаётся в формате GMT

Если установленно, 2 часа ночи, то должен меняться день+месяц(если 31 число). В итоге, меняется месяц, а дата не меняется.

Вопрос: как сделать автоматическое изменение даты, при откате на 3 часа назад?
 

ageres

Guest
Так я его и использую, см. текст сообщения, но откат по дням не идёт.
 

Demiurg

Guest
На сервере стоит время по гринвичу. Думаешь он должен отсчитывать время по тому поясу из которого к нему обратились ?
 

ageres

Guest
Анализируются сообщения форума, форум - файловая система. Даты сообщений в формате GMT.

newdate = date("d-m-Y H:i:s", mktime($chasov-3, $minut, $sekund, $mes, $dat, $year))."<br />";


($chasov-3) - Московское время

Если сообщение было написано в 2 часа ночи, при переводе времени на 3 часа назад, получаем другой день. Если сообщение было написано 1-го числа, при откате на 3 часа, получаем другой месяц.

Ошибку я обнаружил, она была не в скрипте, а в логике программы, поэтому прошу прощения, что побеспокоил.
 

valyala

Новичок
ageres, время лучше хранить в формате unix timestamp. Т.е. в виде числа, возвращаемого функцией time(). Это не просто число, а количество секунд, прошедших с 1 января 1970 года. Тогда для вывода Московского времени используется такая строчка:
PHP:
$timestamp = time();
$newdate = date("d-m-Y H:i:s", $timestamp - 3 * 3600);
 
Сверху