Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to disable moment.js daylight timezone conversion

It is possible to disable the daylight timezone conversion in moment.js?

http://plnkr.co/edit/MjFelt?p=preview

      $scope.obj.date = moment('2016-06-03T04:00:00.000Z');

Basically my application deals with events and dates only, but moment.js converting the daylight savings time is causing issue with dates. Does it have any setting which will disable it across the entire application usage?

like image 521
josh_boaz Avatar asked Dec 10 '22 16:12

josh_boaz


1 Answers

If you are saying that you want moment to display your date and time (which is UTC, as indicated by the 'Z'), exactly as is, you should use moment.utc:

moment.utc('2016-06-03T04:00:00.000Z').format()
"2016-06-03T04:00:00Z"

When you use the default moment constructor, as you are now, you are telling moment to convert your UTC time to local time, and this is why you are seeing a time difference. For instance, on my local machine (I am currently UTC-5) I get the following:

moment('2016-06-03T04:00:00.000Z').format()
"2016-06-02T23:00:00-05:00"

This question comes up quite a lot, so I wrote this blog post that explains moment's constructor functions and how it converts ISO8601 dates in detail: https://maggiepint.com/2016/05/14/moment-js-shows-the-wrong-date/

like image 89
Maggie Pint Avatar answered Dec 13 '22 04:12

Maggie Pint