I have to calculate a time difference between a set time and the current server time.
I'm using the momentjs and the moment timezone library.
Here's what I have:
var serverTime = moment.tz(new Date(), "Europe/Berlin").format();
var bar = moment.tz("2016-05-14 00:00:00", "Europe/Berlin").format();
var baz = bar.diff(serverTime);
console.log('server time is: ' + serverTime);
console.log('time diff is: ' + baz);
This gives me an error:
TypeError: bar.diff is not a function
Is it possible to diff between two timezone formatted dates? If not, what's the optimal way to conduct such calculation using the momentjs library?
I have to calculate a time difference between a set time and the current server time.
I'm using the momentjs and the moment timezone library.
Here's what I have:
var serverTime = moment.tz(new Date(), "Europe/Berlin").format();
var bar = moment.tz("2016-05-14 00:00:00", "Europe/Berlin").format();
var baz = bar.diff(serverTime);
console.log('server time is: ' + serverTime);
console.log('time diff is: ' + baz);
This gives me an error:
TypeError: bar.diff is not a function
Is it possible to diff between two timezone formatted dates? If not, what's the optimal way to conduct such calculation using the momentjs library?
Share Improve this question edited May 13, 2016 at 3:02 Matt Johnson-Pint 242k75 gold badges464 silver badges608 bronze badges asked May 13, 2016 at 1:06 GrantGrant 2181 gold badge5 silver badges15 bronze badges2 Answers
Reset to default 6format
produces a string, so don't use it until you need a string.
var now = moment.tz("Europe/Berlin");
var bar = moment.tz("2016-05-14 00:00:00", "Europe/Berlin");
var baz = bar.diff(now);
console.log('current time is: ' + now.format());
console.log('time diff is: ' + baz);
Note that it's not the "server time" unless you're running this code on the server. As long as it's running on the client, it's still based on the client's clock - even if you use a different time zone.
moment.js is truly great!
It seems I can simply do:
moment.duration(day14.diff(serverTime)).asHours();
or to get the digits for the minutes and hours separately
moment.duration(day14.diff(serverTime)).minutes();
moment.duration(day14.diff(serverTime)).hours();