我正在尝试在JavaScript中的两个日期之间区别月份,日期,小时,分钟和秒。
我知道我们可以得到以毫秒为单位的日期差,并且已经尝试过如下操作:
function showtime() {
var date1 = new Date('7/14/2010 6:21:00');
var date2 = new Date('12/15/2010 7:25:10');
var diffTime = parseInt(date2 - date1);
var diffMonth = Math.floor(diffTime / (1000 * 60 * 60 * 24 * 30));
var diffDays = Math.floor((diffTime / (1000 * 60 * 60 * 24)) - (diffMonth * 30));
var diffHour = Math.floor((diffTime / (1000 * 60 * 60)) - (diffMonth * 30 * 24) - (diffDays * 24))
var diffMinute = Math.floor((diffTime / (1000 * 60)) - (diffMonth * 60 * 30 * 24) - (diffDays * 60 * 24) - (diffHour * 60))
var diffSec = Math.floor((diffTime / (1000)) - (diffMonth * 60 * 60 * 30 * 24) - (diffDays * 60 * 60 * 24) - (diffHour * 60 * 60) - (diffMinute * 60))
var result = (diffMonth + ' Month ' + diffDays + ' Days ' + diffHour + ' Hours ' + diffMinute + ' Minutes ' + diffSec + ' Sec' );
return result;
}
但是上述函数无法计算确切的日期和月份。 任何帮助将不胜感激。
答案 0 :(得分:0)
您正在假设所有月份只有30天,而并非如此(diffMonth使用30天乘数)-这会使天数出现偏差
答案 1 :(得分:0)
请尝试输入我的代码:
let duration = Math.abs(date1 - date2) / 36e5;
let totalDuration = Math.round(duration * 10) / 10;
totalDuration = totalDuration.toString().replace('.', 'H : ') + 'M';
// 13H : 2M