一直試圖解決這個問題一段時間沒有成功,我在這裏找到了幾個類似的答案,但是這裏的格式是重要的。我需要返回X年,X月,X天。2天之間的Javascript日期返回錯誤
你可以看看,我在這裏做錯了什麼......天數不太對。
這裏是一個bin
function inBetweenDays(y,m,d){
var user_date = new Date(y,m + 1,d);
var today_date = new Date();
var diff_date = (user_date - today_date);
var num_years = diff_date/31536000000;
var num_months = (diff_date % 31536000000)/2628000000;
var num_days = ((diff_date % 31536000000) % 2628000000)/86400000;
var years = Math.floor(Math.abs(num_years));
var months = Math.floor(Math.abs(num_months));
var days = Math.floor(Math.abs(num_days));
if (years >= 1) {
console.log(years + " years " + months + " months " + days + " days");
} else if (years <= 0 && months >= 0){
console.log(months + " months " + days + " days");
} else {
console.log(days + " days ");
}
}
inBetweenDays(2015,03,04);
inBetweenDays(2016,03,04);
inBetweenDays(2016,02,04);
inBetweenDays(2018,02,04);
不應該第三行是'new Date(y,m - 1,d)'而不是? – Nayuki
假設一天的時間長度爲86400000毫秒,你就錯了。請去研究爲什麼。 – CBroe
@Nayuki ...我認爲它應該是m + 1,因爲月份是以0爲基礎..... – Lucky500