为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 JavaScript 日期对象舍入到最近的日期

如何使用 JavaScript 日期对象舍入到最近的日期

墨色风雨 2023-05-11 10:20:54
如何使用 JavaScript 日期对象舍入到最近的日期?我有2020-10-14T18:10:48.960Z并且我想要一个函数,它返回2020-10-15T05:00:00.000Z我的时区 CST 中最接近的日期。或者,如果我给它,2020-10-14T16:10:48.960Z我希望它返回2020-10-14T05:00:00.000Z。
查看完整描述

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);


查看完整回答
反对 回复 2023-05-11
?
炎炎设计

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());


查看完整回答
反对 回复 2023-05-11
?
饮歌长啸

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)


查看完整回答
反对 回复 2023-05-11
  • 3 回答
  • 0 关注
  • 91 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信