javascript - 如何在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();
解决方案
使用 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)
推荐阅读
- reactjs - React 组件导出 (html2canvas) 到 PNG 错过了所有 SVG 图标
- gitlab - GITLAB-CI:更改文件中的版本/写入文件
- python - 如何使用 Python 将多个 BLOB 数据导出到各自的文件名
- android - 在 ViewModel 中存储 GoogleMap
- reactjs - 如何使用 prop-types 在 React 组件中自动完成 props
- javascript - 电子/光谱测试确认保存在操作系统中
- tensorflow - 如何使用 tf.autograph.experimental.set_loop_options 设置形状不变量?
- python - 将文件导入pandas的方法
- c# - 在 Xamarin CollectionView 中看不到任何数据
- javascript - Prebid.js Uncaught ReferenceError: pbjs is not defined