I'm using moments.js for working with dates in javascript. All dates are in UTC (or should be).
I have the following date (60 minutes from current time):
//Wed, 04 Apr 2012 21:09:16 GMT
to = moment.utc().add('m', 60).toDate();
Now I want to get the difference in seconds between this date and the current UTC datetime, so I do:
seconds = moment.utc().diff(to, 'seconds');
This returns 10800
instead of 3600
, so 3 hours, instead of one.
Any ideas what I'm doing wrong?
Thank you!
EDIT:
I updated the line to seconds = moment().diff(to, 'seconds');
and it gets the currect seconds, but it's -3600
instead of positive.
EDIT:
I now have these two moment objects:
{ _d: Thu, 05 Apr 2012 17:33:18 GMT, _isUTC: true }
{ _d: Thu, 05 Apr 2012 16:38:45 GMT, _isUTC: true }
d1 and d2.
When I do d1.diff(d2, 'hours', true);
this returns 4
. It's definitely something to do with UTC I think, but it seems this should work.
diff(Moment|String|Number|Date|Array, String); moment(). diff(Moment|String|Number|Date|Array, String, Boolean); To get the difference in milliseconds, use moment#diff like you would use moment#from . To get the difference in another unit of measurement, pass that measurement as the second argument.
We now generally consider Moment to be a legacy project in maintenance mode. It is not dead, but it is indeed done.
Moment construction falls back to js Date. This is discouraged and will be removed in an upcoming major release. This deprecation warning is thrown when no known format is found for a date passed into the string constructor.
moment. utc can take params as number, string, moment, date etc. This method can be used when the date displayed has to be in UTC format.
This is a legitimate bug. I just filed it here: https://github.com/timrwood/moment/issues/261
To get around it, use the following instead.
var a = moment.utc().add('m', 60).toDate(),
b = moment().diff(to, 'seconds'); // use moment() instead of moment.utc()
Also, if you need to get the toString
of the date, you can use moment().toString()
as it proxies to the wrapped Date().toString()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With