Создать дату javascript UTC

Скажем, я набираю следующий код в консоли:

var TheDate = new Date(2012, 10, 5);
TheDate.toUTCString();
"Sun, 04 Nov 2012 23:00:00 GMT" (I'm +1 hour ahead of GMT)

В результате дата устанавливается на локальное время. Как создать дату, установленную в UTC? Если я сделаю TheDate.toUTCString(), я хочу сказать 05 ноя 2012 00:00:00 GMT.

Спасибо.

Ответ 1

Используйте метод Date.UTC():

var TheDate = new Date( Date.UTC(2012, 10, 5) );
console.log( TheDate.toUTCString() );

возвращает

Mon, 05 Nov 2012 00:00:00 GMT

Date.UTC

Принимает те же параметры, что и самая длинная форма конструктора, и возвращает число миллисекунд в объекте Date с 1 января 1970 года, 00:00:00, универсальное время.

Ответ 2

Я предлагаю вам использовать momentjs (

momentjs.com

), то все, что вам нужно сделать, это:

var theDate = new Date(2012, 10, 5),
    utcDate = moment.utc(theDate);

Ответ 3

Я нашел сокращение для него. Вы также можете создать свою дату в формате ISO в качестве new Date('YYYY-MM-DD') чтобы создать дату в формате UTC:

var DateA = new Date( '2012-11-05' );
console.log( DateA.toUTCString() );

// note the difference between input methods

var DateB = new Date( Date.UTC(2012, 10, 5) );
console.log( DateB.toUTCString() );