Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP, работа с часовыми поясами / 7 сообщений из 7, страница 1 из 1
10.03.2015, 11:27
    #38899619
Alibek B
Alibek B 
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP, работа с часовыми поясами
Код: php
1.
2.
3.
4.
5.
6.
$date = new DateTime("2015-03-10T11:01:02", new DateTimeZone('Etc/GMT+5'));
$date->setTimezone(new DateTimeZone('Etc/GMT+3'));
print $date->format('Y-m-d H:i:s') . "\n";

// выводит:
// 2015-03-10 13:01:02



Я что-то сделал неправильно?
Или логика работы с часовыми поясами другая?
Мне нужно приходящее время (GMT+5) перевести в свой часовой пояс (GMT+3).
________________________
Мы смотрим с оптимизмом...
...в оптический прицел.
...
Рейтинг: 0 / 0
10.03.2015, 12:13
    #38899711
Alibek B
Alibek B 
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP, работа с часовыми поясами
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
$now = new DateTime(null);
$tz = $now->getTimezone();
print $now->format('Y-m-d H:i:s P T e') . "\n";
$now->setTimezone(new DateTimeZone('Etc/UTC'));
print $now->format('Y-m-d H:i:s P T e') . "\n";
$now->setTimezone($tz);
print $now->format('Y-m-d H:i:s P T e') . "\n";
$now->setTimezone(new DateTimeZone('Etc/GMT+3'));
print $now->format('Y-m-d H:i:s P T e') . "\n";


Выводит:
Код: plaintext
1.
2.
3.
4.
2015-03-10 12:12:31 +03:00 MSK Europe/Moscow
2015-03-10 09:12:31 +00:00 UTC Etc/UTC
2015-03-10 12:12:31 +03:00 MSK Europe/Moscow
2015-03-10 06:12:31 -03:00 GMT+3 Etc/GMT+3
То есть получается, что часовой пояс GMT+3 в PHP учитывается с отрицательным смещением, а не с положительным.
...
Рейтинг: 0 / 0
10.03.2015, 12:48
    #38899755
anvano
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP, работа с часовыми поясами
Так и должно быть

https://www.ietf.org/timezones/data/etcetera
...
Рейтинг: 0 / 0
10.03.2015, 12:53
    #38899762
r u
r u
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP, работа с часовыми поясами
Alibek B.,

http://php.net/manual/ru/timezones.others.php
ну неужели трудно прочесть мануал?
на каждый чих - тему создавать не надоело?
...
Рейтинг: 0 / 0
10.03.2015, 12:53
    #38899764
anvano
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP, работа с часовыми поясами
И, да. Я кажется вам же уже советовал хотя бы иногда обращаться к документации.

http://php.net/manual/ru/timezones.others.php

автор Внимание
Пожалуйста, не используйте описанные здесь временные зоны (кроме UTC), они существуют только по причинам обратной совместимости.

Внимание
Если вы игнорируете вышестоящее предупреждение, то учтите, что база данных временных зон IANA, которая используется для временных зон PHP, поддерживает использование POSIX-стиля знаков, что подразумевает резервирование Etc/GMT+n и Etc/GMT-n от общего использования.
Например, временная зона на 8 часов вперед от GMT, используемая в Китае, Западной Австралии и других местах, в действительности записана в базе данных как Etc/GMT-8, а не как Etc/GMT+8, который вы могли ожидать.
Настоятельно рекомендуется использовать правильные временные зоны, такие как Asia/Shanghai или Australia/Perth для вышеприведенного примера.


В своем коде вы успешно проигнорировали первое предупреждение, при этом не прочитав второе.
...
Рейтинг: 0 / 0
10.03.2015, 13:45
    #38899865
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP, работа с часовыми поясами
Ну.... человек конечно любитель не читать,


НО данная тема плохо подходит для фразы "читать документацию" -ибо целиком от корки до корки никто не читает. вряд ли ктото знающий регулярки и начав работать с пхп перечитывал документацию про регулярки на пхп нет - как пример. тоже с часовыми поясами. и таки да - сдесь не очевидное. даже в стандарте написано, ... мы используем шкалу на запад от гринвича, не смотря на то что большинство!!! людей ожидают противоположное.

тоесть стандарт этот принят таким, но признаёться тот факт что большинство его интуитивно поймут наоборот.

это как начать писать весс продуктовых товаров брутто вместо нетто. формально, слово брутто будет написано мелкими буквами на товаре(но не на ценнике) но большинство людей будет путаться - ожидая что надпись на ценнике молоко 1000гр ххх рублей, означает что это плата за 900гр молока, а не за 900 + 100 гр стеклянная бутылка.
...
Рейтинг: 0 / 0
10.03.2015, 14:05
    #38899911
r u
r u
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP, работа с часовыми поясами
alex564657498765453НО данная тема плохо подходит для фразы "читать документацию" -ибо целиком от корки до корки никто не читает. вряд ли ктото знающий регулярки и начав работать с пхп перечитывал документацию про регулярки на пхп нет - как пример. тоже с часовыми поясами. и таки да - сдесь не очевидное. даже в стандарте написано, ... мы используем шкалу на запад от гринвича, не смотря на то что большинство!!! людей ожидают противоположное.
от корки до корки читать и не нужно.
просто если чтото делаешь новое, и неполучается, или получается но результат странный - ну открой доки ИМЕННО по этой теме и пробегись глазами. но нет. надо создать тему, и ждать неделю пока ктонить не ткнёт носом в мануал.

я с подобной проблемой не сталкивался, но почемуто за минут 5 нашел в доках где собака порылась. и многие так бы сделали. но не Alibek B. ))
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP, работа с часовыми поясами / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]