我使用带有cron的npm time模块来创建对时区正确的事件。用户输入他们的时区,我希望能够在将时区传递给cron对象之前检查他们输入的时区是否有效。
我使用coffeescript所以不确定如何在javascript中编写它。但我想要以下内容:
var time = require('time');
var zone = "Europe/Lndn";
var x = time.checkIfValid(zone); #user misspelled London so returns false
if(x === false)
#do something
这是该软件包的链接,没有说明有效性检查https://www.npmjs.com/package/time
任何想法或解决方法都很棒
答案 0 :(得分:0)
查看源代码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
来处理无效的时区,就可以使用try catch statement。
答案 1 :(得分:0)
因此,查看作为cron依赖关系的moment-timezone包,有一个方法tz.zone(),如果时区无效则返回null,如果有效则返回数组。
var moment = require("moment-timezone");
var x = moment.tz.zone("Europe/Berlin");
if(x === null)
#invalid timezone