检查当前时间是否在不同时区的2次之间
Check if current time is between 2 times in different Timezone
需要查找访问我的页面的用户是否在支持时间8:00am或16:00pm PST之间,因此,如果来自亚洲或其他时区的用户在这些时间之外访问页面获得自定义标签,我可以使其工作不涉及时区,但我有时区问题,下面的代码总是返回true。有什么办法做到这一点吗?
import moment from 'moment';
import 'moment-timezone';
const timezone = 'America/Los_Angeles';
const supportStartTime = moment().tz(timezone).hours(8).minutes(0).seconds(0);
const supportEndsTime = moment().tz(timezone).hours(16).minutes(0).seconds(0);
const now = moment();
const isBetweenWorkingHours = now.isBetween(supportStartTime,supportEndsTime);
似乎工作正常:
var timezone = 'America/Los_Angeles';
var supportStartTime = moment().tz(timezone).hours(8).minutes(0).seconds(0);
console.log(supportStartTime.format());
var supportEndsTime = moment().tz(timezone).hours(16).minutes(0).seconds(0);
console.log(supportEndsTime.format());
var now = moment().tz('EST').startOf('day').hours(10);
console.log(now.format());
var isBetweenWorkingHours = now.isBetween(supportStartTime,supportEndsTime);
console.log(isBetweenWorkingHours);
var now = moment().tz('EST').startOf('day').hours(12);
console.log(now.format());
var isBetweenWorkingHours = now.isBetween(supportStartTime,supportEndsTime);
console.log(isBetweenWorkingHours);
var now = moment();
console.log(now.format());
var isBetweenWorkingHours = now.isBetween(supportStartTime,supportEndsTime);
console.log(isBetweenWorkingHours);
生产:
2016-11-06T08:00:00-08:00
2016-11-06T16:00:00-08:00
2016-11-06T10:00:00-05:00
false
2016-11-06T12:00:00-05:00
true
2016-11-06T15:22:48-08:00
true
(我使用的是太平洋时间,这就是为什么最后一项显示的是时区)
console.log(moment().format());
console.log(moment().tz('EST').format());
console.log(moment().tz('UTC').format());
生产:
2016-11-06T16:24:53-08:00
2016-11-06T19:24:53-05:00
2016-11-07T00:24:53Z
这些都是相同的"现在"。如果你在EST运行moment().format()
,你会得到当前时间和你的时区(第2行)。如果有人在UTC同时运行moment().format()
,他们会得到相对于他们自己的时区的"现在"(第3行)。它们都是相同的"现在",因为它们是同时运行的,它们只是有不同的本地表示。
相关文章:
- Javascript返回值只在循环中返回一次
- Jquery FadeIn FadeOut 只工作一次
- 使用javascript检查多个输入值,并在1次检查中标记多个输入框
- toLocaleDateString和toLocaleString方法不尊重机器时区
- Javascript html每点击一次就会更改url
- /undefined在我的404错误日志中多次出现
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- 高库存时期时间与时区不匹配
- Google Adsense多次加载脚本
- Rails操作只调用一次,但我在ajax中每秒钟都调用一次
- ScriptManager.RegisterStartupScript保持多次添加脚本块
- Meteor Router数据函数被调用两次
- 创建要多次使用的函数
- 多次发射多个可观察器的问题
- 仅在IE中,javascript中的时区名称不正确
- jQuery滚动功能只工作一次
- 带时区的Javascript Datestring转换器
- Javascript Select OnChange没有'不要第二次工作
- 相同的RegExp返回不同的结果-第一次是正确的结果,第二次是null
- 检查当前时间是否在不同时区的2次之间