This is a bit of my JS code for which this is needed:
var secDiff = Math.abs(Math.round((utc_date-this.premiere_date)/1000));
this.years = this.calculateUnit(secDiff,(86400*365));
this.days = this.calculateUnit(secDiff-(this.years*(86400*365)),86400);
this.hours = this.calculateUnit((secDiff-(this.years*(86400*365))-(this.days*86400)),3600);
this.minutes = this.calculateUnit((secDiff-(this.years*(86400*365))-(this.days*86400)-(this.hours*3600)),60);
this.seconds = this.calculateUnit((secDiff-(this.years*(86400*365))-(this.days*86400)-(this.hours*3600)-(this.minutes*60)),1);
I want to get the datetime in “ago”, but if the DST is in use then the dates are off by 1 hour. I don’t know how to check if the DST is in effect or not.
How can I know when the daylight saving starts and ends?
This code uses the fact that
getTimezoneOffsetreturns a greater value during Standard Time versus Daylight Saving Time (DST). Thus it determines the expected output during Standard Time, and it compares whether the output of the given date the same (Standard) or less (DST).Note that
getTimezoneOffsetreturns positive numbers of minutes for zones west of UTC, which are usually stated as negative hours (since they’re “behind” UTC). For example, Los Angeles is UTC–8h Standard, UTC-7h DST.getTimezoneOffsetreturns480(positive 480 minutes) in December (winter, Standard Time), rather than-480. It returns negative numbers for the Eastern Hemisphere (such-600for Sydney in winter, despite this being “ahead” (UTC+10h).