检查不同时区的夏令时是否有效

check if daylight time is in effect for different timezone

本文关键字:夏令时 是否 有效 时区 检查      更新时间:2023-09-26

javascript中有许多解决方案可以检查日期是否在白天[如何检查DST(夏令时)是否有效,如果偏移量是多少?

但是,只有当某人处于适用日光效果的同一时区时,该解决方案才有效,前任。假设我当前的浏览器(客户端)是 IST(印度标准 - 没有日光时间变化),我想检查 ET 的日期是否为日光(东部时间 - 其中日光为 -5,标准为 -4)。上述解决方案(来自链接)只有在我的系统时区为 ET 而不是 IST 时才会给我正确的结果。

我该如何计算?

如果您

使用 moment.js 并且它是脚本timezome配套的,它们会使检查 DST 变得非常容易:

查看他们的文档 isDST()

只是为了咧嘴笑,这里有一个小提琴测试每个时区

if( moment.tz("America/New_York").isDST() ){
    $('#test').append('NY is currently in DST');
}
else{
    $('#test').append('NY is NOT currently in DST');
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.3/moment.min.js"></script>
<script src="http://momentjs.com/downloads/moment-timezone-with-data.min.js"></script>
<div id="test"></div>

您可以使用 luxon 库检查 DST 是否在特定区域处于活动状态。 您所需要的只是时区字符串,您可以检查 DST 是否处于活动状态。

所以首先从卢克森导入日期时间

import { DateTime } from "luxon";

然后检查 DST 在时区中是否处于活动状态

if (DateTime.local().setZone(timezone).isInDST) {
  console.log("Dst is active in ", timezone)
}
else {
  console.log("Dst is NOT active in ", timezone)
}

其中时区是您正在寻找的时区。