以下是我编写的使用timezone-js
模块为特定时区创建Date
对象的代码
require('timezone-js');
var dt = new timezoneJS.Date('2012, 06, 8, 11, 55, 4','Europe/Amsterdam');
我跑了npm install timezone-js
并安装了模块。
但是,当我运行程序时,我收到以下错误
var dt = new timezoneJS.Date('2012, 06, 8, 11, 55, 4','Europe/Amsterdam');
^
ReferenceError: timezoneJS is not defined
at Object.<anonymous> (/Users/nandish/Documents/MI-Airlines/mi.airline-sync/lib/nodeTest.js:47:15)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.runMain (module.js:492:10)
at process.startup.processNextTick.process._tickCallback (node.js:244:9)
答案 0 :(得分:0)
使用require
时,将结果分配给变量,然后使用该变量。所以:
var timezoneJS = require('timezone-js');
除此之外,这意味着您可以使用您想要的任何名称,例如:
var ts = require('timezone-js');
var dt = new ts.Date(2013, 0, 1);
附注:如果您要使用timezone-js
,请务必阅读the setup requirements。它需要区域文件,如果您不提供它们,它将尝试动态加载。我试过的版本有错误检测可用的传输,FWIW(它试图读取它不知道的全局符号被定义,这会引发异常,而不是使用typeof thesymbol
而不是)。< / p>
如果您主动抓取该链接中描述的时区文件,并且它们位于您运行脚本的相对路径tz
,则可以:
var timezoneJS = require("timezone-js");
var fs = require('fs');
// Give timezoneJS a transport for loading local timezone files.
// This code is extracted from https://github.com/mde/timezone-js/blob/master/spec/test-utils.js
timezoneJS.timezone.transport = function (opts) {
// No success handler, what's the point?
if (opts.async) {
if (typeof opts.success !== 'function') return;
opts.error = opts.error || console.error;
return fs.readFile(opts.url, 'utf8', function (err, data) {
return err ? opts.error(err) : opts.success(data);
});
}
return fs.readFileSync(opts.url, 'utf8');
};
// Init timezones
timezoneJS.timezone.zoneFileBasePath = 'tz'; // <== If you put the files elsewhere, change this
timezoneJS.timezone.init();
// Use it to get a date in Central European Time
var d = new timezoneJS.Date(2013, 7, 1, 'CET');
console.log(d.toString()); // "Local" time for the date instance (CET)
console.log(d.toUTCString()); // UTC
...或者您当然可以使用使用HTTP加载它们的传输。令我感到惊讶的是npm-
- timezone-js
的打包版本并不默认为某些基于文件的传输而不是查找库(带有损坏的检查)。