2015-04-11 4 views
-1

Почему new Date() преобразование часового пояса? Я хочу, чтобы моя дата была такой же, как строка, которую я предоставляю, поэтому 00:30, а не 10:30.new Date() преобразует часовой пояс

>>> new Date("2015-04-11T00:30:00"); 
Sat Apr 11 2015 10:30:00 GMT+1000 (AEST) 
+1

Поскольку конструктор даты запускается в вашем браузере и использует любое время и часовой пояс на вашем компьютере. – adeneo

ответ

2

Вы передали дату в форме ISO в конструктор «2015-04-11T00: 30: 00». Это означает, что ваш браузер интерпретирует это не как местное время, а как UTC. Однако Date.toString использует ваше местное время. Если вы хотите использовать UTC-вызов времени .toUTCString или еще лучше .toISOString.

+0

Узнал что-то новое! Удаленный ответ, пожалуйста, прокомментируйте источник информации, если у вас есть. –

+0

Вот документация MDN по дате. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date и что-то о времени ISO http://en.wikipedia.org/wiki/ISO_8601 – SpiderPig

+0

При создании новой даты() в консоли javascript браузер автоматически вызывается .toString для созданного объекта, а toString - в вашем локальном часовом поясе. Если есть путаница в течение того времени, когда данный объект Date действительно представляет, я предлагаю всегда вызывать метод .toISOString. На самом деле, даже если нет путаницы, вы всегда должны использовать toISOString или toJSON при работе с датами. – SpiderPig

Смежные вопросы