【问题标题】:How to calculate years and months between two dates in Javascript?如何在Javascript中计算两个日期之间的年月?
【发布时间】:2014-01-03 06:35:59
【问题描述】:

有没有办法计算 Javascript 中两个不同日期之间的年数(也考虑闰年)和月数?

【问题讨论】:

  • 年月是指年月吗?
  • 是的,当然,我可以计算年份但无法得到月差
  • 嗨,skilldrick,我发现以下对获得几个月有用wordsanddeeds.org/blog/2007/04/…

标签: javascript


【解决方案1】:

这是我所知道的获得年数和月数的最佳方法:

// 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};

【讨论】:

  • 我愿意贡献:codefunction 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]);月-=1; var formatedDate = new Date(dateItems[yearIndex],month,dateItems[dayIndex]);返回格式化日期; }
【解决方案2】:

这可能是一个有用的来源:

http://www.merlyn.demon.co.uk/js-date1.htm#DYMD

【讨论】:

    【解决方案3】:

    您将在此处找到完整的 javascript function 并进行验证。

    编辑:链接已失效 - 这是一个简单的 JS 行,用于计算两个日期之间的月差:

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

    假设您在两个变量中有日期,分别称为 dateTodateFrom

    【讨论】:

    • 嗨,fabian,那是有用的部分,但它对我的月份没有帮助。
    • 嗨,我发现这对获得几个月很有用wordsanddeeds.org/blog/2007/04/…
    • 更新了问题并添加了代码。我想我一开始就应该这样做。
    【解决方案4】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-16
      • 2018-03-04
      • 2012-01-06
      相关资源
      最近更新 更多