Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   date() и часы на компьютере показывают разные значения (https://javascript.ru/forum/misc/74514-date-i-chasy-na-kompyutere-pokazyvayut-raznye-znacheniya.html)

arkadii_parovozov 17.07.2018 21:42

laimas, Москва, но точный адрес не скажу ))

j0hnik, вот мне просто делать больше нехера как строчить тут сообщения.

Я естественно кошу на ОС, но это нужно как-то обосновать, а не просто отмахнутся, типа: ничего не знаю это ваши проблемы...

laimas 17.07.2018 21:48

И не надо адреса. Значит не должно быть у него перехода на летнее время, а на час, значит только это может дать сдвиг у нас в стране. Но когда часы переводятся на час, переводится и системное время.

Можете у себя попробовать простой вывод таймером new Date(), но с учетом перехода на летнее время. Для этого зайдите в настройки дата/время и выберите любой часовой пояс отличный от наших по стране. При этом в настройках будет доступен флажок разрешающий переход на летнее время, он должен быть установлен.

Что будут показывать системные часы и часы таймера (если что, то систему перезапустите)? После вернете свой часовой пояс.

arkadii_parovozov 17.07.2018 21:51

Rise, я уже переформулировал вопрос: Почему объект Date() показывает время на один час меньше чем отображается в системных часах компьютера?
Здесь нет ни слова о серверном времени. Не сбивайте людей с толку.

arkadii_parovozov 17.07.2018 22:03

laimas, спасибо! Выбрал другую страну, разница в браузере и в системных часах стало в 10 часов.

Теперь другой вопрос, что делает этот флажок что js расходится с системными часами?

laimas 17.07.2018 22:09

А вот это неожиданность. :) В JS для объекта Date нет метода получения времени с учетом перехода на летнее/зимнее время. Значит получается, что корректируются системные часы, а не время (таймер), а JS работает с системным временем (таймером).

Скажите своему клиенту, что он лох и нужно ему просто запретить переход на летнее/зимнее время, ибо он до сих пор живет по Керенскому. :)

arkadii_parovozov 17.07.2018 22:12

laimas, причем даже независимо от того в каком положении флажок (переходить/не переходить) все равно часы показывают разное время в других часовых поясах (где возможен переход).

Это возможно преодолеть на уровне js?

И если системное время одно, то почему js показывает одно а системные часы другое?

arkadii_parovozov 17.07.2018 22:19

laimas, походу это все "адская 10-ка" уточню у клиента что у него там. У меня 10-ка стоит, и когда меняю пояса, то у некоторых зон опция перехода отсутствует, и если я выбираю эти зоны, то время везде одинаково. А если выбираю зоны где флажок активен, то время разное (независимо от положения флажка).

Оказывается нет. Просто если зоны разные, то время отличается. Но механизм изврата ОС я понял. Они тупо выводят в часах измененное время, а системное оставляют неизменным. Интересно с какой целью они так сделали...

laimas 17.07.2018 22:28

Нет, проверять надо именно переход на летнее время. А разница которую видите вы объясняется другим фактором. Допустим у вас часовой пояс +300, а вы его изменили на часовой пояс +600. Если выводить new Date(), то можно заметить, что ваши часы будут отображать прежний часовой пояс +300.
Я полагаю, что это так, а значит вы не перезагрузили систему. Выбрав другой часовой пояс, в котором будут доступен переход на летнее время, перезапустите систему (или не запускайте скрипт до смены часового пояса), и проверяйте часы только при разрешении и запрете перехода.

laimas 17.07.2018 22:30

Цитата:

Сообщение от arkadii_parovozov
когда меняю пояса, то у некоторых зон опция перехода отсутствует

Все правильно, Windows для того и клепает обновления, которые учитывают в том числе и "законы" переходить или нет... У нас нет теперь, а значит и флажок недоступен.

arkadii_parovozov 17.07.2018 22:33

Rise, (UTC+04:00) Баку
Разница между js и системы в один час. Изменение перехода на лето отключено.
По умолчанию у меня стоит (UTC+03:00) Москва, Санкт-Петербург, Волгоград


Часовой пояс GMT +3, время: 07:25.