在 JavaScript 中确定夏令时 (DST)
计算时差时,考虑夏令时 (DST) 至关重要,如果没有适当考虑,可能会导致差异。在此代码片段中:
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);
DST 可能会导致时差计算错误。要解决此问题,请考虑使用以下步骤:
检查 DST 是否生效:
实现isDstObserved()函数:
Date.prototype.isDstObserved = function () { return this.getTimezoneOffset() < this.stdTimezoneOffset(); }
此函数检查给定日期的时区偏移量是否小于其标准时区偏移量,表明 DST 生效。
验证 DST 状态:
以上是如何在 JavaScript 时间计算中考虑夏令时?的详细内容。更多信息请关注PHP中文网其他相关文章!