想计算两个日期之间相差的天数,还要根据时间精确到半天。比如2023-01-12 8:00~2023-01-12 12:00,算0.5天;比如2023-01-12 8:00~2023-01.13 12:00,算1.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天。这种要怎么算?
最后这样写的
function DateDiff(sDate1: any, sDate2: any) { //sDate1和sDate2是2022-12-18格式
var aDate, oDate1, oDate2, iDays
aDate = sDate1.split("-")
oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]) //转换为12-18-2022格式
aDate = sDate2.split("-")
oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0])
//@ts-ignore
iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24) //把相差的毫秒数转换为天数
return iDays
}
//将时分秒转为时间戳
function time_to_sec(time: any) {
if (time !== null) {
var s = "";
var hour = time.split(":")[0];
var min = time.split(":")[1];
//@ts-ignore
s = Number(hour * 3600) + Number(min * 60);
// console.log(hour, 'console.log(hour);');
return s;
}
}
const comdays = () => {
let times = DateDiff(startdate.value, enddate.value)
// console.log(times);
//@ts-ignore
if (time_to_sec(endtime.value) <= time_to_sec('12:00')) {
//@ts-ignore
formData.value.day = times + 0.5
} else {
//@ts-ignore
formData.value.day = times + 1
}
}
6 回答3k 阅读✓ 已解决
8 回答4.8k 阅读✓ 已解决
6 回答3.5k 阅读✓ 已解决
5 回答2.9k 阅读✓ 已解决
6 回答2.4k 阅读
5 回答6.4k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决
看了下你的描述,你想要的是这样一个效果?