如何舍入getTime结果(忽略分钟和小时)

时间:2015-05-27 15:05:10

标签: javascript

我需要获得某一天的毫秒数(即使是今天),但需要将结果向下舍入。

例如,使用getTime()方法到目前为止的毫秒数为1432738826994

我希望将其向下舍入以获得当天开始之前的毫秒数,我需要摆脱所有的分钟和小时。是否有一种干净简单的方法来实现这一目标?

2 个答案:

答案 0 :(得分:2)

纯JavaScript解决方案

var d = new Date();
var h = d.getHours();
var m = d.getMinutes();
var s = d.getSeconds();
var mi = d.getMilliseconds();

var fromStart = mi + (s * 1000) + (m * 60 * 1000) + (h * 60 * 60 * 1000);
var roundedDown = Date.now() - fromStart;

要打印当天的开始,请使用new Date(Date.now() - fromStart)

答案 1 :(得分:2)

如果您对使用外部库感到满意,最简单的方法是使用moment.js

moment().startOf('day').valueOf();

将在今天开始时为您提供unix纪元值。

如果你想使用内置日期对象的Javascript,那么你需要将小时,分钟,秒和毫秒设置为0:

var rightNow = new Date();
rightNow.setHours(0);
rightNow.setMinutes(0);
rightNow.setSeconds(0);
rightNow.setMilliseconds(0);

或者仅从年,月和日值创建新对象:

var rightNow = new Date();
var earlierToday = new Date(rightNow.getFullYear(), rightNow.getMonth(), rightNow.getDate(), 0, 0, 0, 0);