#javascript #jquery
#javascript #jquery
Вопрос:
Я пытаюсь установить новое время, выполнив :
var d = new Date('2011-04-11T' dataRecord.StartTime);
// If the dataRecord.StartTime ='05:10:10' then d becomes
// Date {Mon Apr 11 2011 05:10:10 GMT 0530 (India Standard Time)}
var e = new Date('2011-04-11T' dataRecord.EndTime);
В Mozilla это работает нормально, но в случае Chrome он показывает опережение на 5.30 часов!!!
Как я могу изменить свой код, чтобы он работал во всех браузерах??
Комментарии:
1. Не могли бы вы опубликовать точные результаты, которые вы получаете в Chrome? Похоже, что вместо местного времени используется UTC.
2. Chrome добавляет часы на основе локального времени клиента. Например, если вы находитесь в часовом поясе 3 и пытаетесь создать дату ‘2011-04-11T15:00:00’, вы получите ‘2011-04-11T18:00:00’. Чтобы избавиться от этой проблемы, я предлагаю вам придерживаться формата времени UTC, чтобы вы получили одинаковый результат во всех браузерах.
Ответ №1:
Делает ли что-то подобное трюк?
var d = new Date('2011-04-11T05:10:10');
var utc = new Date(new Date().getTime());
d.setMinutes(utc.getTimezoneOffset() d.getMinutes() );
console.log(d);
Я просто получаю смещение из текущего браузера и добавляю их к дате, которую вы создаете в первую очередь. Смещение часового пояса задается в минутах…