你好,
首先來分析一個問題,兩個日期是什麼格式的?假設是字串格式:
可能是:2018/04/20,也可能是:2018/04/20 12:00:00
首先看看不含時間部分的日期格式計算:
var aDate = new Date("2018/04/23"); // 透過日期字串,初始化第一個日期物件var bDate = new Date("2018/04/25"); // 同上,初始化第二個日期物件var aDay = 24 * 60 * 60 * 1000; // 完整一天有24小時,將小時換算成毫秒時間戳var diffDay = (bDate - aDate) / aDay; // 計算間隔天數(注意日期隱式轉換)console.log(diffDay); // 2,23日-25日間隔2天
然後再來看看包含時間部分的日期格式計算:
var aDate = new Date("2018/04/23");var bDate = new Date("2018/04/25 12:00:00"); // 包含時間的日期字串var aDay = 24 * 60 * 60 * 1000;var diffDay = (bDate - aDate) / aDay;console.log(diffDay); // 2.5,自然計算的結果console.log(Math.floor(diffDay)); // 2,根據個人情況向下取整,整數天console.log(Math.ceil(diffDay)); // 3,根據個人情況向上取整,整數天
希望是你想要的結果,如有疑問請追問。
你好,
首先來分析一個問題,兩個日期是什麼格式的?假設是字串格式:
可能是:2018/04/20,也可能是:2018/04/20 12:00:00
首先看看不含時間部分的日期格式計算:
var aDate = new Date("2018/04/23"); // 透過日期字串,初始化第一個日期物件var bDate = new Date("2018/04/25"); // 同上,初始化第二個日期物件var aDay = 24 * 60 * 60 * 1000; // 完整一天有24小時,將小時換算成毫秒時間戳var diffDay = (bDate - aDate) / aDay; // 計算間隔天數(注意日期隱式轉換)console.log(diffDay); // 2,23日-25日間隔2天
然後再來看看包含時間部分的日期格式計算:
var aDate = new Date("2018/04/23");var bDate = new Date("2018/04/25 12:00:00"); // 包含時間的日期字串var aDay = 24 * 60 * 60 * 1000;var diffDay = (bDate - aDate) / aDay;console.log(diffDay); // 2.5,自然計算的結果console.log(Math.floor(diffDay)); // 2,根據個人情況向下取整,整數天console.log(Math.ceil(diffDay)); // 3,根據個人情況向上取整,整數天
希望是你想要的結果,如有疑問請追問。