3 回答
TA贡献1836条经验 获得超5个赞
我能想到的最简单的方法是将日期增加 12 小时,然后截断时间部分。这具有四舍五入到最近日期的效果(中午之前的任何时间都会被截断,之后的任何时间都会被截断到第二天,然后时间被截断)。
let d = new Date();
// add 12 hours to the date
d.setTime(d.getTime() + (12*60*60*1000));
// truncate the time
d.setHours(0,0,0,0);
console.log(d);
TA贡献1808条经验 获得超4个赞
您可以检查小时,如果它在 12 点之前,请将时间设置为 00:00:00。如果是 12 点或之后,将时间设置为 24:00:00,例如
let d = new Date();
d.setHours(d.getHours() < 12? 0 : 24, 0,0,0);
console.log(d.toISOString() + '\n' + d.toString());
TA贡献1951条经验 获得超3个赞
//this code will round to the nearest date
const roundToNearestDay = (date) => {
let isPastNoon = date.getHours() >= 12
if (isPastNoon)
//if first parameter > 23, will increment date +1
date.setHours(24,0,0,0)
else
date.setHours(0,0,0,0)
return date
}
let nearestDay = roundToNearestDay(new Date())
console.log(nearestDay)
添加回答
举报