Skip to content Skip to sidebar Skip to footer

Moment.js - Utc Does Not Work As I Expect It

testing in the node console: var moment = require('moment'); // create a new Date-Object var now = new Date(2013, 02, 28, 11, 11, 11); // create the native timestamp var native =

Solution 1:

Call moment.utc() the same way you're calling Date.UTC:

var withMoment = moment.utc([now.getFullYear(), now.getMonth(), now.getDate(), now.getHours(), now.getMinutes(), now.getSeconds()]).valueOf();

I think calling moment.utc(now) will make it assume now lives in the local timezone, and it will convert it to UTC first, hence the difference.

Solution 2:

What you are doing is essentially this.

var now    = newDate(2013, 02, 28, 11, 11, 11);
var native = Date.UTC(2013, 02, 28, 11, 11, 11);

console.log(now === utc); // falseconsole.log(now - utc); // your offset from GMT in milliseconds

Because now is constructed in the current timezone and native is constructed in UTC, they will differ by your offset. 11 AM PST != 11 AM GMT.

Post a Comment for "Moment.js - Utc Does Not Work As I Expect It"