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)
添加回答
舉報