17.07.2018, 22:03
|
Кандидат Javascript-наук
|
|
Регистрация: 24.11.2016
Сообщений: 101
|
|
laimas, спасибо! Выбрал другую страну, разница в браузере и в системных часах стало в 10 часов.
Теперь другой вопрос, что делает этот флажок что js расходится с системными часами?
|
|
17.07.2018, 22:09
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
А вот это неожиданность. В JS для объекта Date нет метода получения времени с учетом перехода на летнее/зимнее время. Значит получается, что корректируются системные часы, а не время (таймер), а JS работает с системным временем (таймером).
Скажите своему клиенту, что он лох и нужно ему просто запретить переход на летнее/зимнее время, ибо он до сих пор живет по Керенскому.
|
|
17.07.2018, 22:12
|
Кандидат Javascript-наук
|
|
Регистрация: 24.11.2016
Сообщений: 101
|
|
laimas, причем даже независимо от того в каком положении флажок (переходить/не переходить) все равно часы показывают разное время в других часовых поясах (где возможен переход).
Это возможно преодолеть на уровне js?
И если системное время одно, то почему js показывает одно а системные часы другое?
|
|
17.07.2018, 22:19
|
Кандидат Javascript-наук
|
|
Регистрация: 24.11.2016
Сообщений: 101
|
|
laimas, походу это все "адская 10-ка" уточню у клиента что у него там. У меня 10-ка стоит, и когда меняю пояса, то у некоторых зон опция перехода отсутствует, и если я выбираю эти зоны, то время везде одинаково. А если выбираю зоны где флажок активен, то время разное (независимо от положения флажка).
Оказывается нет. Просто если зоны разные, то время отличается. Но механизм изврата ОС я понял. Они тупо выводят в часах измененное время, а системное оставляют неизменным. Интересно с какой целью они так сделали...
Последний раз редактировалось arkadii_parovozov, 17.07.2018 в 22:25.
|
|
17.07.2018, 22:28
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Нет, проверять надо именно переход на летнее время. А разница которую видите вы объясняется другим фактором. Допустим у вас часовой пояс +300, а вы его изменили на часовой пояс +600. Если выводить new Date(), то можно заметить, что ваши часы будут отображать прежний часовой пояс +300.
Я полагаю, что это так, а значит вы не перезагрузили систему. Выбрав другой часовой пояс, в котором будут доступен переход на летнее время, перезапустите систему (или не запускайте скрипт до смены часового пояса), и проверяйте часы только при разрешении и запрете перехода.
Последний раз редактировалось laimas, 17.07.2018 в 22:35.
|
|
17.07.2018, 22:28
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,662
|
|
arkadii_parovozov,
На каком часовой поясе например у вас меняется?
|
|
17.07.2018, 22:30
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от arkadii_parovozov
|
когда меняю пояса, то у некоторых зон опция перехода отсутствует
|
Все правильно, Windows для того и клепает обновления, которые учитывают в том числе и "законы" переходить или нет... У нас нет теперь, а значит и флажок недоступен.
|
|
17.07.2018, 22:33
|
Кандидат Javascript-наук
|
|
Регистрация: 24.11.2016
Сообщений: 101
|
|
Rise, (UTC+04:00) Баку
Разница между js и системы в один час. Изменение перехода на лето отключено.
По умолчанию у меня стоит (UTC+03:00) Москва, Санкт-Петербург, Волгоград
Последний раз редактировалось arkadii_parovozov, 17.07.2018 в 22:35.
|
|
17.07.2018, 22:41
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,662
|
|
arkadii_parovozov,
у меня всё нормально, W7, судя по скрину у вашего клиента тоже. Я так проверяю в консоли new Date().getHours();
Последний раз редактировалось Rise, 17.07.2018 в 22:47.
|
|
17.07.2018, 23:24
|
Кандидат Javascript-наук
|
|
Регистрация: 24.11.2016
Сообщений: 101
|
|
Ребята, спасибо всем за помощь!
laimas, оказывается перезагружать систему при смене поясов не обязательно. Достаточно только перезапустить браузер (если просто закрыть и открыть вкладку ничего не меняется).
И если даже переключить на (переход на летнее время), то все равно показывает правильные значения, главное перезапустить браузер после манипуляций с системным временем.
Так что получается, что браузер типо кэширует время сервера при запуске и потом js не имеет прямого доступа к системному времени?
|
|
|
|