It's the test spec that's wrong. On the day DST ends, the hour from 1:00 to 1:59 is repeated twice, which gives you 25 hours. When DST begins, that day is only 23 hours long. MomentJS isn't doing anything strange here.
Ok. I've been already punished on stackoverflow for this question. But what about moment isDSTShifted method? Doesn't seems working. The shift was on 2:00AM.
But both
moment('2015-25-10 2:00', 'YYYY-MM-DD HH:mm').isDSTShifted()
moment('2015-25-10 3:00', 'YYYY-MM-DD HH:mm').isDSTShifted()
Those are both supposed to return false. isDSTShifted() tells you whether the datetime you entered was shifted by the library because it doesn't exist in daylight savings time. For example, in pseudocode, if you try to "add 1 day" to "2:30AM the day before DST begins", it'll be shifted because there is no 2:30AM on the resulting date. The clock skips from 1:59AM to 3AM that day.
Here's a fiddle showing isDSTShifted() working with the US DST start (I don't know what date to use for your location):
7 comments
[ 3.4 ms ] story [ 37.9 ms ] threadIt's the test spec that's wrong. On the day DST ends, the hour from 1:00 to 1:59 is repeated twice, which gives you 25 hours. When DST begins, that day is only 23 hours long. MomentJS isn't doing anything strange here.
But both moment('2015-25-10 2:00', 'YYYY-MM-DD HH:mm').isDSTShifted() moment('2015-25-10 3:00', 'YYYY-MM-DD HH:mm').isDSTShifted()
return false
Here's a fiddle showing isDSTShifted() working with the US DST start (I don't know what date to use for your location):
http://jsfiddle.net/d9tz0tv1/
I think you're looking for isDST()?
But: moment('2015-25-10 2:00', 'YYYY-MM-DD HH:mm').isDST() moment('2015-25-10 3:00', 'YYYY-MM-DD HH:mm').isDST()
return false.
That's not correct in my TZ. Confused.
But: moment('2015-25-10 2:00', 'YYYY-MM-DD HH:mm').isDST() moment('2015-25-10 3:00', 'YYYY-MM-DD HH:mm').isDST()
return false.
That's not correct in my TZ. Confused.