如何计算javascript中两个日期之间的天数?

问题描述:

可能重复:
How to calculate the number of days between two dates using javascript如何计算javascript中两个日期之间的天数?

我有那些日期:

27/09/2011 
29/10/2011 

,我想天返回(在本例中的日期之间,应是33天)。

我该怎么做的JavaScript(或jQuery?)?

+0

不要认为它是在重复问题中提到的,但您可以查看http://www.datejs.com/ –

function days_between(date1, date2) { 

    // The number of milliseconds in one day 
    var ONE_DAY = 1000 * 60 * 60 * 24 

    // Convert both dates to milliseconds 
    var date1_ms = date1.getTime() 
    var date2_ms = date2.getTime() 

    // Calculate the difference in milliseconds 
    var difference_ms = Math.abs(date1_ms - date2_ms) 

    // Convert back to days and return 
    return Math.round(difference_ms/ONE_DAY) 

} 

http://www.mcfedries.com/JavaScript/DaysBetween.asp

+0

这个链接已经死了,所以我的答案不再提供 – user918967

+1

链接仍然适用于我,在链接中添加了代码,因为链接只有答案很烂。 – BNL

var daysBetween = (Date.parse(DATE1) - Date.parse(DATE2))/(24 * 3600 * 1000); 
+0

它应该失败:如果日期是IT而不是EN,则值不同:O – markzzz

+0

我刚刚展示了如何做到这一点 –

// split the date into days, months, years array 
var x = "27/09/2011".split('/') 
var y = "29/10/2011".split('/') 

// create date objects using year, month, day 
var a = new Date(x[2],x[1],x[0]) 
var b = new Date(y[2],y[1],y[0]) 

// calculate difference between dayes 
var c = (b - a) 

// convert from milliseconds to days 
// multiply milliseconds * seconds * minutes * hours 
var d = c/(1000 * 60 * 60 * 24) 

// show what you got 
alert(d) 

注: 我觉得这个方法比Date.parse()安全为您明确指定的日期格式是输入(通过拆分到年,月,日的开始) 。这对于避免模糊不清是很重要的,因为03/04/2008可能是3rd of April, 20084th of March, 2008,具体取决于您的日期来自哪个国家/地区。

+0

[非法](http://dictionary.merriam-webster.com/dictionary/illicit)?我认为你的意思是[明确](http://dictionary.merriam-webster.com/dictionary/explicit)。 –

+0

是的 - 我的意思是明确的 - 你说得很对 –