Формат даты Javascript отображается по-разному в Firefox для разных мест - PullRequest
1 голос
/ 30 мая 2019

У меня есть код JavaScript, который создает страницу HTML. На странице есть таблица со столбцом даты. Требуемый формат даты: мм / дд / гггг чч: ми: сс AM

В Javascript я генерирую этот формат из кода ниже.

Ожидаемый результат - 06/07/2019 6: 00: 00 PM

В моем месте, когда я запускаю код javascript на своем компьютере в Индии, я получаю ожидаемый результат. Но когда клиент запускает его в своей системе в США, он видит некоторое смещение во времени.

Похоже, как упомянуто ниже в Firefox.

6/06/2019 2: 00: 00, 16:00

В чем может быть причина этого? И как я мог решить это?

'<span>"06-06-2019 1:00:00 CDT PM".split('-')[1]+'/'+"06-06-2019 1:00:00 CDT PM".split('-')[0]+'/'+"06-06-2019 1:00:00 CDT PM".substr(6, 13).trim()+' '+"06-06-2019 1:00:00 CDT PM".substr(23)</span>'

1 Ответ

0 голосов
/ 30 мая 2019

Простой ответ: TimeZone Разница.У каждого есть свой собственный браузер, и Javascript работает на стороне клиента, поэтому очевидно, что javascript по своей природе будет показывать локальную дату и время по умолчанию.

Вы можете просто установить значение, установив часовой пояс значение смещения

Date.prototype.getUTCLocalDate = function () {
    var target = new Date(this.valueOf());
    var offset = target.getTimezoneOffset();
    var year = target.getUTCFullYear();
    var month = target.getUTCMonth();
    var date = target.getUTCDate();
    var hour = target.getUTCHours();
    var minutes = target.getUTCMinutes();
    var seconds = target.getUTCSeconds();
    return new Date(Date.UTC(year , month , date , hour , minutes + offset, seconds ));
  };

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

...