Как использовать пользовательское время в браузере для проверки разницы во времени между клиентом и сервером

Я просто написал небольшой fragment кода, чтобы показать время сервера на веб-странице. На данный момент у меня только одна машина, поэтому я не могу проверить, работает ли код.

Есть ли способ сказать браузеру использовать временную конфигурацию, отличную от конфигурации, настроенной в ОС? Я использовал плагины для Firefox, чтобы протестировать разные локали, интересно, есть ли аналогичные варианты тестов времени.

Благодарю.

К сожалению, JavaScript знает только о текущем часовом поясе, так как он задан операционной системой. Нет объектов, позволяющих объекту Date использовать другой часовой пояс в определенном контексте. Есть несколько библиотек для преобразования часовых поясов, но это не поможет в том, что вы просите.

Однако есть «трюк», который вы можете использовать. Некоторые браузеры читают системный часовой пояс только при первом запуске. Поэтому, если вы запустите браузер и затем измените часовой пояс своего компьютера, браузер продолжит работу в старом часовом поясе. Я знаю, что Google Chrome в Windows работает таким образом. Я также тестировал IE10, но он забирает новый часовой пояс.

Еще одна вещь, однако, вы сказали, что вы показываете время сервера на веб-странице. Как вы это понимаете? Это PHP? .Сеть? Что-то другое? Время сервера, очевидно, не влияет на время клиента или браузера, если только они не находятся на одной машине, как во время разработки.

Создайте новый пустой каталог для отдельного профиля пользователя Chrome. Например, с

 mkdir ~/chrome-profile 

Вы указываете переменную окружения TZ . Например, вы можете видеть действительные часовые пояса, например, в столбце TZ.

Чтобы запустить Chrome, используйте следующие команды:

  • для Mac OS X: TZ='US/Pacific' open -na "Google Chrome" --args "--user-data-dir=$HOME/chrome-profile"
  • для Linux: TZ='US/Pacific' google-chrome "--user-data-dir=$HOME/chrome-profile"

Я изменил скрипт, который открывает новый экземпляр Chrome, чтобы также позволить спуфинг часового пояса через переменную среды TZ. Вы можете найти его здесь: https://gist.github.com/prasadsilva/225fd0394a51e52bf62f

По популярному спросу (шучу!), Объяснение.

Google Chrome считывает переменные среды, чтобы получить доступ к часовому поясу. Очевидно, что все экземпляры Chrome используют значение (не тестируется). Чтобы заставить часовой пояс, нам необходимо: a) установить переменную окружения в требуемый часовой пояс; b) убить все существующие экземпляры Chrome ; c) распечатать текущий часовой пояс для подтверждения и d) запустить Chrome с заданным часовым поясом.

Следующий сценарий оболочки протестирован с OS X, но должен работать и для других.

 export TZ='US/Pacific' killall Chrome date open /Applications/Google\ Chrome.app 

Chrome, похоже, обновляет TimeZone, как только вы меняете его в Windows. Кажется, что Firefox сохраняет значение часового пояса системы при запуске.

С Visual Studio похоже, что вы можете превратить трюк в свою голову. Кажется, что Часовой пояс читается только при первом запуске процесса отладки. Итак, в моем случае, я сделал, чтобы установить TimeZone, например, в Eastern Standard Time. Запустите отладчик Visual Studio. Затем я изменил TimeZone, например, в Pacific Standard time. Сервер в этот момент остался в восточном часовом поясе, а мой браузер находился в тихоокеанском часовом поясе. Теперь я смог проверить поведение браузера клиента просто отлично.

Если вы хотите протестировать клиента в Японии, просто обновите TimeZone, и браузер последует за ним. До тех пор, пока вы не перезапустите процесс отладки, часовой пояс вашего сервера не изменится. Также просто не изменилось время (в отличие от часового пояса).

Старый вопрос, но у меня была аналогичная проблема, и я все равно отправлю свое решение.

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

Затем я изменил настройки времени в виртуальной машине, чтобы между клиентом и сервером была какая-то разница.

Вероятно, вам лучше оставить свой часовой пояс компьютера неповрежденным и изменить настройки сервера, чтобы отразить часовой пояс впереди или позади вас. Обычно это довольно легко сделать в зависимости от используемого сервера.

Это простой способ, которым я пытался изменить часовой пояс и проверить его для Windows 7 ^ Я использую tzutil

tzutil /s "Eastern Standard Time" и сохраните его в соответствующем файле .bat например Eastern_Standard_Time_zone.bat и используйте default_time_zone.bat чтобы использовать ваш первоначальный системный часовой пояс, чтобы вернуть его после окончания сеанса. это мгновенно изменит часовой пояс. Справка

  • Как перевести между часовыми поясами Windows и IANA?
  • Преобразование временной зоны
  • Всегда ли полезно хранить время в UTC или это тот случай, когда лучше хранить в местное время?
  • Как конвертировать дату с одного часового пояса в другой часовой пояс
  • Получить имя часового пояса
  • Мне нужен список сопоставлений городов для timezones - лучший способ получить его?
  • Преобразование между локальными временами и GMT / UTC в C / C ++
  • Получение даты с на несколько часов
  • Могу ли я получить часовой пояс браузера в ASP.NET или мне нужно полагаться на операции JS для извлечения информации?
  • Изменение часового пояса MySQL?
  • Как получить часовой пояс из местоположения с использованием координат широты и долготы?
  • Interesting Posts

    Bye Windows Defender, мне нужно снова отключить вас

    IBM Worklight – Где найти предыдущие выпуски

    Будет ли обновляться Windows 10 до окончательного выпуска?

    Могу ли я резервировать все компьютеры в своей сети на моем сервере, используя только бесплатное программное обеспечение или окна?

    Предупреждение безопасности Internet Explorer: вы хотите безопасно просматривать только содержимое веб-страницы?

    Код для функции printf в C

    Кодировка символов jQuery AJAX

    Разница в make_shared и normal shared_ptr в C ++

    Почему объекты Delphi назначаются даже после вызова. Свободно?

    Изменить значок DOCX

    Почему ++ считается l-значением, но i ++ – нет?

    Есть ли способ в Java преобразовать целое число в его порядковый номер?

    Я получаю «Ответ на ошибку Http для (неизвестный url): 0 Unknown Error» вместо фактического сообщения об ошибке в Angular

    Как читать текст из скрытого элемента с помощью Selenium WebDriver?

    Строки подключения SQL Server – точка (“.”) Или “(локальная)” или “(localdb)”

    Давайте будем гением компьютера.