使用 npm time 包是否可以测试时区的有效性
Using npm time package is it possible to test validity of timezone
我正在使用带有 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
这是包的 link 没有说明有效性检查 https://www.npmjs.com/package/time
对此有任何想法或解决方法都很好
查看源代码 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 来处理无效时区。
因此,查看作为 cron 依赖项的 moment-timezone 包,有一个方法 tz.zone() 如果时区无效则 returns 为空,如果有效则为数组。
var moment = require("moment-timezone");
var x = moment.tz.zone("Europe/Berlin");
if(x === null)
#invalid timezone
我正在使用带有 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
这是包的 link 没有说明有效性检查 https://www.npmjs.com/package/time
对此有任何想法或解决方法都很好
查看源代码 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 来处理无效时区。
因此,查看作为 cron 依赖项的 moment-timezone 包,有一个方法 tz.zone() 如果时区无效则 returns 为空,如果有效则为数组。
var moment = require("moment-timezone");
var x = moment.tz.zone("Europe/Berlin");
if(x === null)
#invalid timezone