javascript - 如何比较一个日期减去另一个日期并得到天数?

标签 javascript datetime

function createDate(d) {
   var year = parseFloat(d.substring(6, 10)); 
   var month = parseFloat(d.substring(0,2)); 
   var day = parseFloat(d.substring(3, 5)); 

   var d = new Date(year, month, day); 

   return d; 
}

var d1 = $("#DateCarArrival").val();
var d2 = $("#DateCarLeaving").val(); 

var date1 = createDate(d1); 
var date2 = createDate(d2);

console.log(date1.toString()); 
console.log(date2.toString());   

//       Mon Feb 18 2013 13:19:26 GMT+0100
//      Mon Feb 18 2013 13:19:26 GMT+0100

如何比较这些日期并得到它们之间的天数?

最佳答案

注意:此答案假设字符串为 mm/dd/yyyy
如果你在 Chrome 中使用 type="date",你会得到 yyyy-dd-mm

的字符串

DEMO

function createDate(d) {
   var year = parseInt(d.substring(6, 10),10); 
   var month = parseInt(d.substring(0,2),10); 
   var day = parseInt(d.substring(3, 5),10); 

   var d = new Date(year, month-1, day); // JS Months are 0 based
   return d; 
}

var d1 = $("#DateCarArrival").val();
var d2 = $("#DateCarLeaving").val(); 

var date1 = createDate(d1); 
var date2 = createDate(d2);

var aDay = 24*60*60*1000;
var diff = Math.abs((date1.getTime()-date2.getTime())/aDay)
console.log(date1.toString(),date2.toString(),diff);   

关于javascript - 如何比较一个日期减去另一个日期并得到天数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14936206/

相关文章:

javascript - 当 redux 状态改变时,功能组件不会重新渲染

javascript - 未应用元素上的动画

mysql - 在响应/更新中找到日期之间最长和最快的差异

.net - sqlite-net 日期时间检索

node.js - 在nodejs中将日期转换为ISOString时时间发生变化

javascript - 防止 mousedown 窃取当前输入的焦点,但允许选择文本

javascript - Angular Directive(指令)

JavaScript( react ): How to extend async function's await to a given time

python - 使用 Pandas 计算 30 分钟时间段内列中的字符串值

c# - 将 UTC 转换为本地时间返回奇怪的结果