Node.js 时区js简单示例奇怪的行为
我尝试用node.js和 出于奇怪的原因,我找不到任何能让它工作的例子,比如hello world程序 下面是我的尝试:Node.js 时区js简单示例奇怪的行为,node.js,timezone,Node.js,Timezone,我尝试用node.js和 出于奇怪的原因,我找不到任何能让它工作的例子,比如hello world程序 下面是我的尝试: var timezoneJS = require('timezone-js'); timezoneJS.timezone.zoneFileBasePath = './tz'; timezoneJS.timezone.init(); var getTime = function(timezone) { var UTC = new timezoneJS.Date(new
var timezoneJS = require('timezone-js');
timezoneJS.timezone.zoneFileBasePath = './tz';
timezoneJS.timezone.init();
var getTime = function(timezone)
{
var UTC = new timezoneJS.Date(new Date(), 'Etc/UTC'); //for unknown reason this works only for Etc/UTC
var YYYY = UTC.getFullYear();
var MM = UTC.getMonth() + 1;
var DD = UTC.getDate();
var hh = UTC.getHours();
var mm = UTC.getMinutes();
var ss = UTC.getSeconds();
var dt = new timezoneJS.Date(YYYY, MM, DD, hh, mm, ss, timezone);
var date = dt.getFullYear() + '/' + (dt.getMonth() + 1) + '/' + dt.getDate();
var time = ('0' + dt.getHours()).slice(-2) + ':' + ('0' + dt.getMinutes()).slice(-2) + ':' + ('0' + dt.getSeconds()).slice(-2);
var datetime = date + ' ' + time;
return datetime;
};
log(getTime('Europe/London'));
log(getTime('America/New_York'));
结果是:
$ node app
'2014/7/16 14:30:40'
'2014/7/16 14:30:40'
伦敦和纽约也一样。这是怎么发生的?让我知道如何修复
谢谢。您应该能够省略函数的第一部分,只需执行以下操作:
var dt = new timezoneJS.Date(Date.now, timezone);
它不能像您编写的那样工作的原因是,您正在两个不同的时区中将日期初始化为同一年/月/日/小时/分钟/秒。换句话说,它们不代表当前时间,它们被UTC偏移错误地移动了
你也可以考虑,或./P> 6月16日2014:16:28:24 GMT + 0100(浪漫标准时间),GTM在你的约会中在哪里?对不起,我不理解你的询问。问题由以下答案解决。谢谢回答得很好。我曾经知道moment.js,但现在已经忘记了。那些场景看起来很有前景。非常感谢,马特。