create javascript date UTC

2019-01-18 22:47发布

问题:

Let's say I type the following code in the console:

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

The result is that the date is actually set to the local time. How do I create a Date that's set to UTC? If I do TheDate.toUTCString() I want it to say 05 Nov 2012 00:00:00 GMT.

Thanks.

回答1:

Use the Date.UTC() method:

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

returns

Mon, 05 Nov 2012 00:00:00 GMT

Date.UTC

Accepts the same parameters as the longest form of the constructor, and returns the number of milliseconds in a Date object since January 1, 1970, 00:00:00, universal time.



回答2:

I would suggest you use momentjs (

momentjs.com

), then all you have to do is:

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


回答3:

I found a shorthand for it, You could also create your date in ISO format as new Date('YYYY-MM-DD') to create date as 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() );