Javascript 使用npm时间包可以测试时区的有效性
Im使用带有cron的npm时间模块创建符合时区的事件。用户输入他们的时区,我希望在将其传递给cron对象之前能够检查他们输入的时区是否有效 我使用的是coffeescript,所以不确定如何用javascript编写它。但我想做如下几点:Javascript 使用npm时间包可以测试时区的有效性,javascript,node.js,time,cron,time.h,Javascript,Node.js,Time,Cron,Time.h,Im使用带有cron的npm时间模块创建符合时区的事件。用户输入他们的时区,我希望在将其传递给cron对象之前能够检查他们输入的时区是否有效 我使用的是coffeescript,所以不确定如何用javascript编写它。但我想做如下几点: var time = require('time'); var zone = "Europe/Lndn"; var x = time.checkIfValid(zone); #user misspelled London so returns false
var time = require('time');
var zone = "Europe/Lndn";
var x = time.checkIfValid(zone); #user misspelled London so returns false
if(x === false)
#do something
这是指向软件包的链接,没有说明任何关于有效性检查的内容
查看源代码
setTimezone
调用tzset
,如果给出无效的时区,就会抛出错误,这方面的任何想法或解决方法都将非常有用。以下是相关代码:
if (!rtn.tzname[1] && rtn.timezone === 0) {
debug('got bad zoneinfo object:', rtn);
var err = new Error("Unknown Timezone: '" + usedTz + "'");
for (var i in rtn) {
err[i] = rtn[i];
}
throw err;
}
无论何时调用
setTimezone
或tzset
都可以使用来处理无效时区。因此,查看作为cron依赖项的矩时区包,有一个方法tz.zone(),如果时区无效,则返回null;如果时区有效,则返回数组
var moment = require("moment-timezone");
var x = moment.tz.zone("Europe/Berlin");
if(x === null)
#invalid timezone
我考虑过使用它,但实际上我不想改变时区,我正在做的是一个应用程序,它将在许多时区使用,用户输入他们的时区。我只想在将其插入cron作业之前检查它是否有效