首页 > 解决方案 > 如何在javascript中检查它是否在太平洋标准时间上午10点到下午6点之间?

问题描述

如果在太平洋标准时间上午 10 点到下午 6 点(每天)之间,我想在我的网站上显示“立即致电”横幅。

我在想出开始和结束时间戳时遇到了麻烦。

const open = new Date('12:00:00')
const close = new Date('18:00:00')
const now = new Date();

const isOpen = now.getTime() < close.getTime() && now.getTime() > open.getTime();

标签: javascriptdate

解决方案


使用 UTC 和 PST 之间的 TimeZoneOffset 来计算小时数。

let timeZoneOffset = -7 // UTC-8 => PST

setInterval(() => {
  let pstHour = (new Date().getUTCHours() + 24 + timeZoneOffset) % 24
  console.log('PST Hour: ', pstHour)
  if (pstHour >=10 && pstHour < 18) console.log("Show 'Call Now' at " + pstHour)
}, 1000)


推荐阅读