计算两个日期之间的天数精确到 .5?

作者站长头像
站长
· 阅读数 5

想计算两个日期之间相差的天数,还要根据时间精确到半天。比如2023-01-12 8:00~2023-01-12 12:00,算0.5天;比如2023-01-12 8:00~2023-01.13 12:00,算1.5天。这种要怎么算?

回复
1个回答
avatar
test
2024-07-10

看了下你的描述,你想要的是这样一个效果?

function getDays(startDate,endDate) {
    var days = 0;
    var startInfo = startDate.split(' '),
        endInfo = endDate.split(' '),
        
        startDay = new Date(startInfo[0]),
        endDay = new Date(endInfo[0]), 
        
        endHour = endInfo[1].split(':')[0]
    
    if( startDay.getTime() != endDay.getTime()) {
        days = (endDay.getTime() - startDay.getTime()) / 86400000
    }

    if(endHour <= 12) {
        days += 0.5
    } else {
        days += 1
    }
    return days
}
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容