javascript - 在 JavaScript 中将日期转换为 UTC 日期的奇怪行为

标签 javascript

我有一个代表日期的数字列表。这些数字按升序顺序排列。对于每个数字,我首先将其转换为 JavaScript Date 对象,然后从 Date 对象转换为 UTC 日期。问题是 UTC 日期没有按顺序排列(查看控制台日志,468028800000 小于 468547200000)。这段代码有什么问题?

var dates = [
  469342800000, 469429200000, 469515600000,
  469602000000, 469688400000, 469774800000
];

for (var i = 0; i < dates.length; i++) {
  var d = new Date(dates[i]);
  var dateUTC = Date.UTC(d.getFullYear(), d.getMonth(), d.getDay());
  console.log(dates[i], d, dateUTC);
}

最佳答案

问题是这一行:

var dateUTC = Date.UTC(d.getFullYear(), d.getMonth(), d.getDay());

getDay() 为您提供星期几,而不是一个月中的某一天。您需要 getDate()

关于javascript - 在 JavaScript 中将日期转换为 UTC 日期的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30857692/

相关文章:

javascript - jQuery click() 不适用于 JSON

javascript - 使用 letterings.js 保留文本格式

javascript - $routeProvider 和 angularJS?

javascript - 输入 id 以可变字符串开头

javascript - 如何访问自定义属性指令中的父范围

javascript - 如何使用 d3 扩展 select 标签中的选项数量?

javascript - jQuery AJAX 没有错误或成功触发

javascript - 如何在 POST 请求触发之前获取 GET 请求的响应正文的内容?这可以通过 promise 完成吗?

javascript - 如何从jade文件中的javascript文件访问变量的值?

javascript - 如何从 HTML 按钮调用一些 JavaScript