从unix时间戳获取日期分辨率

时间:2013-11-03 19:43:50

标签: javascript unix unix-timestamp

我的理解是unix时间戳被解析为毫秒

Math.round((new Date()).getTime()); // 1383507660267

所以如果我想要第二个分辨率我会做

Math.round((new Date()).getTime() / 1000); // 1383507729

如何获得日期解决方案? (所以每24小时才会改变一次)

2 个答案:

答案 0 :(得分:3)

如果你不得不应对日光节约时间的变化,那么将时间戳标准化以反映某个特定时间可能会更好,例如(任意)中午12:00:

var daystamp = function() {
  var d = new Date();
  d.setHours(12);
  d.setMinutes(0);
  d.setSeconds(0);
  d.setMilliseconds(0);
  return d.getTime();
}();

那将在你生成它的那天给你时间戳,所以如果你在一个特定的日历日期的任何时候得到它,它总会给你相同的价值。只有当日期不同时才会有所不同,无论一天中有多少小时。因此,当系统为时移添加或删除一小时时,事情仍然有效。

答案 1 :(得分:2)

怎么样......

Math.round((new Date()).getTime() / (24 * 3600 * 1000));

那应该做的工作。甚至更简单:

(new Date()).getTime() / (24 * 3600 * 1000);