2009-12-16 311 views
2

有没有一种方法可以计算Javascript中两个不同日期之间的年数(考虑闰年)和月数?如何计算Javascript中两个日期之间的年份和月份?

+0

当你说年,月,你的意思年和几个月? – Skilldrick 2009-12-16 11:50:43

+0

是的,当然,我能够计算年,但无法获得月差 – subash 2009-12-16 12:49:30

+0

嗨skilldrick我发现以下是一个有用的获取月 http://wordsanddeeds.org/blog/2007/04/javascript-在两个日期之间获得月数 - 34 – subash 2009-12-16 13:17:58

回答

-2

你会在这里找到一个完整的javascript function验证。

编辑:链接已经死了 - 在这里是一个简单的JS线,计算两个日期之间的月差:

return dateTo.getMonth() - dateFrom.getMonth() + 
     (12 * (dateTo.getFullYear() - dateFrom.getFullYear())); 

这是假设你有两个变量称为dateTodateFrom的日期。

+0

您好,fabian,这是有用的一块,但它不会帮助我获得月份。 – subash 2009-12-16 12:50:15

+0

嗨,我发现这对于获得月份很有用 http://wordsanddeeds.org/blog/2007/04/javascript-get-number-of-months-between-two-dates-34 – subash 2009-12-16 13:18:56

+2

不幸的是,链接是否更长的工作。 – pisaruk 2012-07-10 22:12:30

4

这是我所知道的获得年和月的最佳途径:

// Assumes Date From (df) and Date To (dt) are valid etc... 
var df= new Date("01/15/2010"); 
var dt = new Date("02/01/2012"); 
var allMonths= dt.getMonth() - df.getMonth() + (12 * (dt.getFullYear() - df.getFullYear())); 
var allYears= dt.getFullYear() - df.getFullYear(); 
var partialMonths = dt.getMonth() - df.getMonth(); 
if (partialMonths < 0) { 
    allYears--; 
    partialMonths = partialMonths + 12; 
} 
var total = allYears + " years and " + partialMonths + " months between the dates."; 
var totalMonths = "A total of " + allMonths + " between the dates."; 
console.log(total); 
console.log(totalMonths); 


return {jaren: allYears, maanden: partialMonths}; 
+0

我想提供:'code'function stringToDate(_date,_format,_delimiter)var formatLowerCase = _format.toLowerCase(); var formatItems = formatLowerCase.split(_delimiter); var dateItems = _date.split(_delimiter); var monthIndex = formatItems.indexOf(“mm”); var dayIndex = formatItems.indexOf(“dd”); var yearIndex = formatItems.indexOf(“yyyy”); var month = parseInt(dateItems [monthIndex]); month- = 1; var formatedDate = new Date(dateItems [yearIndex],month,dateItems [dayIndex]); return formatedDate; } – 2017-05-05 17:53:40

相关问题