【发布时间】:2012-02-22 16:27:54
【问题描述】:
我正在使用 JavaScript 并尝试以 Unix 格式获取 GMT+0/UTC+0 时间(也称为 Zulu 时间)。
我已经设法以 Unix 格式获取本地时间,如下所示:
var datetime = new Date()
var unixtime = Math.floor(Number(datetime/1000));
但是当我尝试对 UTC 时间做同样的事情时......
var datetime = new Date()
var year = datetime.getUTCFullYear()
var month = datetime.getUTCMonth()
var day = datetime.getUTCDate()
var hours = datetime.getUTCHours()
var minutes = datetime.getUTCMinutes()
var seconds = datetime.getUTCSeconds()
var unixtime = (Date.UTC(year,month,day,hours,minutes,seconds,00)/1000);
它失败了。我只是以 Unix 格式获取本地时间。
您可以在此处实时运行它:http://jsfiddle.net/wC8XH/1/ (也在pastebin上:http://pastebin.com/uDD5zUah)
这是一个输出示例:
2012-01-30 23:15:19 = 1327958119
2012-01-30 21:15:19 = 1327958119
在做:
date -d "2012-01-30 21:15:19" +%s
在 Linux 上给我 1327950919,而不是 1327958119。差异是 7200 秒,即 2 小时,这是我的时区 (+0200)。
因此,如果我只是想要人类可读的格式,我可以获得 UTC+0 时间,但是当我请求 Date.UTC 将其转换为 Unix 格式时,它会选择转换我的本地时间。
我错过了什么吗?
【问题讨论】:
标签: javascript unix time utc gmt