如何使用原生js计算夏令时?

作者站长头像
站长
· 阅读数 5

如题,请问如何使用Date对象计算夏令时?

回复
1个回答
avatar
test
2024-07-08

AI太好用了,推荐你学习使用下。下面这个答案我没有测试,应该能提供一个思路

// 获取当前时间的时间戳
const now = new Date();
const timestamp = now.getTime();

// 获取当前时区偏移量
const timezoneOffset = now.getTimezoneOffset() * 60 * 1000;

// 计算夏令时偏移量
const summerOffset = 60 * 60 * 1000;

// 判断当前时间是否处于夏令时期间
const isSummerTime = timestamp >= (1553994000000 + summerOffset) && timestamp < (1572138000000 + timezoneOffset);

if (isSummerTime) {
  // 是夏令时,进行相应处理
  console.log('当前时间处于夏令时');
} else {
  // 不是夏令时,进行相应处理
  console.log('当前时间不处于夏令时');
}

该示例代码中,now.getTime() 获取到的是当前时间的时间戳,now.getTimezoneOffset() 获取到了当前时区与 UTC 的时差(单位为分钟),因此需要将其转换为毫秒表示,从而得到 timezoneOffset。计算夏令时偏移量时,需要将一小时(即 60 分钟)转换为毫秒表示,从而得到 summerOffset,并与开始和结束时间戳相加,得到夏令时开始和结束时间戳。最后判断当前时间是否处于夏令时期间即可

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容