JavaScript 中的 DST 检测:检查准确日期操作的状态
在精确时间计算的情况下,例如时间显示或日期操作,至关重要,必须考虑夏令时 (DST)。如果不及时考虑,这种季节性调整可能会导致时间计算出现差异。
为了解决此问题,我们开发了一个 JavaScript 代码片段,用于检查 DST 在给定时刻是否有效。核心逻辑取决于 getTimezoneOffset 在标准时间期间返回比 DST 更高的值这一事实。通过确定标准时间期间的预期偏移量并将其与给定日期的偏移量进行比较,可以确定是否正在使用标准时间或夏令时。
值得注意的是,getTimezoneOffset 对于以西的时区返回正值UTC 和 UTC 以东地区的负值。此外,偏移量通常以小时为单位表示,而 getTimezoneOffset 返回以分钟为单位的偏移量。例如,洛杉矶在标准时间期间为 UTC-8 点,在 DST 期间为 UTC-7 点。 12 月,getTimezoneOffset 将为洛杉矶生成 480(正 480 分钟)。
以下 JavaScript 代码详细说明了此概念:
Date.prototype.stdTimezoneOffset = function () { var jan = new Date(this.getFullYear(), 0, 1); var jul = new Date(this.getFullYear(), 6, 1); return Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset()); } Date.prototype.isDstObserved = function () { return this.getTimezoneOffset() < this.stdTimezoneOffset(); } var today = new Date(); if (today.isDstObserved()) { alert ("Daylight saving time!"); }
此代码检查 DST 当前是否有效给定日期与标准时间预期之间的 getTimezoneOffset 差异。通过利用这种逻辑,开发人员可以精确计算日期和时间,同时考虑夏令时的影响。
以上是夏令时有效吗?在 JavaScript 中准确检测 DST。的详细内容。更多信息请关注PHP中文网其他相关文章!