Установка новых временных проблем в Chrome

#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);
  

Я просто получаю смещение из текущего браузера и добавляю их к дате, которую вы создаете в первую очередь. Смещение часового пояса задается в минутах…