Javascript 使用npm时间包可以测试时区的有效性

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

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
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作业之前检查它是否有效