如何在JavaScript中为日期添加月份?[重复]

2020/10/10 01:41 · javascript ·  · 0评论

我想在JavaScript中添加几个月的日期。

例如:我要插入日期06/01/2011(格式mm/dd/yyyy),现在我想在此日期前加上8个月。我希望结果是02/01/2012

因此,增加月份时,年份也可能增加。

于25.06.2019更正:

var newDate = new Date(date.setMonth(date.getMonth()+8));


这里

var jan312009 = new Date(2009, 0, 31);
var eightMonthsFromJan312009  = jan312009.setMonth(jan312009.getMonth()+8);

将日期分为年,月和日部分,然后使用Date

var d = new Date(year, month, day);
d.setMonth(d.getMonth() + 8);

日期将确定年份。

我看了一下datejs并剥离了必要的代码,以便在处理极端情况的日期(months年,较短的月份等)中添加月份:

Date.isLeapYear = function (year) { 
    return (((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0)); 
};

Date.getDaysInMonth = function (year, month) {
    return [31, (Date.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];
};

Date.prototype.isLeapYear = function () { 
    return Date.isLeapYear(this.getFullYear()); 
};

Date.prototype.getDaysInMonth = function () { 
    return Date.getDaysInMonth(this.getFullYear(), this.getMonth());
};

Date.prototype.addMonths = function (value) {
    var n = this.getDate();
    this.setDate(1);
    this.setMonth(this.getMonth() + value);
    this.setDate(Math.min(n, this.getDaysInMonth()));
    return this;
};

这会将“ addMonths()”函数添加到应处理极端情况的任何JavaScript日期对象中。感谢Coolite Inc!

用:

var myDate = new Date("01/31/2012");
var result1 = myDate.addMonths(1);

var myDate2 = new Date("01/31/2011");
var result2 = myDate2.addMonths(1);

->> newDate.addMonths-> mydate.addMonths

result1 =“ 2012年2月29日”

result2 =“ 2011年2月28日”

我强烈建议您看一下datejs使用它的api,添加一个月变得很简单(以及许多其他日期功能):

var one_month_from_your_date = your_date_object.add(1).month();

这样做的好处datejs是可以处理边缘情况,因为从技术上讲,您可以使用本机Date对象及其附加方法来执行此操作但是最终您将头发拉出了边缘保护套,这datejs已经为您解决了。

另外它是开源的!

本文地址:http://javascript.askforanswer.com/ruhezaijavascriptzhongweiriqitianjiayuefenzhongfu.html
文章标签: ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!