javascript - 时间戳中的错误日期

标签 javascript timestamp

我有一个无法自己解决的问题。

这是从我的网站数据库中获取的时间戳 1308085200。它代表 2011-06-15 12:00:00

这是我用来以人类可读格式“获取”日期的 javascript 代码。

var date    = new Date(1308085200 * 1000);
var year    = date.getFullYear();
var month   = date.getMonth();
var day     = date.getDate();
var hour    = date.getUTCHours();
var minute  = date.getUTCMinutes();
var seconds = date.getUTCSeconds();

问题是我得到了错误的结果。例如上面的代码显示 2011-5-15 21:0:0 而不是 2011-06-15 12:00:00

我做错了什么以及如何解决?

最佳答案

JavaScript 的 Date::getMonth() 返回一个从零开始的从 0 到 11 的整数,这就是为什么您的日期显示的是五月而不是六月。

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getMonth

更新

至于时间部分,这是我得到的(AEST)

var d = new Date(1308085200000); // Wed Jun 15 07:00:00 GMT+1000 (EST)
d.toUTCString() // Tue, 14 Jun 2011 21:00:00 GMT
d.getUTCFullYear() // 2011
d.getUTCMonth() // 5
d.getUTCDate() // 14
d.getUTCHours() // 21
d.getUTCMinutes() // 0
d.getUTCSeconds() // 0

看起来您的时间戳实际上不是您认为的那样。

关于javascript - 时间戳中的错误日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6341214/

相关文章:

javascript - 隐藏列表项,直到单击下一步

javascript - 将行数据从 DataTable 发送到 Ajax 表单

timestamp - 将CURRENT_TIMESTAMP分配给TIMESTAMP字段时,plpgsql语法错误

sql - Oracle 时间戳差异大于 X 小时/天/月

oracle - 在 Oracle 中使用 TIMEZONE 更改 TIMESTAMP 的时区组件

sql - HH :MM:SS 中的 Oracle SQL 时间差

timestamp - SimpleDB 插入时的时间戳

javascript - 在通过 jQuery 的 load() 函数加载的 HTML 上使用已经加载的 JS?

javascript - 正则表达式,选择字符的任意组合且区分大小写

javascript - 我可以补间 D3 弧的 endAngle,但不是它的 startAngle。我究竟做错了什么?