Я пытаюсь создать тикающие часы, которые обновляются каждую секунду (или допустима каждая новая минута).
Моя проблема возникает из-за того, что я использую ajax-запрос.Новый запрос Ajax отправляется каждый раз, когда я выбираю другой часовой пояс в прокручиваемом меню.
Запрос Ajax выполняется ниже кода.
Если я перезагружаю страницу, например, с помощью $timezone = 'Asia/Tokyo', то все в порядке. Проблема возникает, когда я выполняю запрос ajax через раскрывающееся меню с другим часовым поясом, например $timezone = 'Europe/Berlin'.
Результат будет быть выводом на веб-сайте, который мерцает между двумя разными временами.
Итак: когда я выбираю другой часовой пояс, например часовой пояс для Европы/Берлина, из раскрывающегося меню, ajax-запрос отправляется и выполняется приведенный ниже код, а setInterval(showTime, 1000); обновляет время каждую секунду, то есть веб-сайт будет отображать новый вывод каждую секунду при выполнении функции JavaScript. Но между обновлениями JavaScript время на веб-сайте будет возвращаться к тому времени и часовому поясу, которые были до запроса ajax, показывая время для $timezone = 'Asia/Tokyo'! Таким образом, отображаемое время будет мерцать. время чередуется: Европа/Берлин>Азия/Токио>Европа/Берлин>Азия/Токио... меняется каждую секунду.
(Кроме того, в выводе я также получаю «GMT+0200 (Центральноевропейское летнее время)»-окончание. Но это не важно, я хочу исключить его из вывода).
Мерцание часов между часовыми поясами каждую секунду из-за setInterval(showTime, 1000 ); https://imgur.com/a/yX0yMj0
Скорее всего, вы НЕ сможете воссоздать ошибку, поскольку мой $timezone происходит из ajax-запрос (выпадающее меню), а не путем его установки типа $timezone = 'Asia/Tokyo'.
Подробнее здесь: https://stackoverflow.com/questions/788 ... ot-flicker