如何使用JavaScript将日期添加到当前日期?JavaScript是否有像.NET的AddDay()那样的内置函数?


当前回答

您可以使用JavaScript,不需要jQuery:

var someDate = new Date();
var numberOfDaysToAdd = 6;
someDate.setDate(someDate.getDate() + numberOfDaysToAdd); 
Formatting to dd/mm/yyyy :

var dd = someDate.getDate();
var mm = someDate.getMonth() + 1;
var y = someDate.getFullYear();

var someFormattedDate = dd + '/'+ mm + '/'+ y;

其他回答

为管道运营商设计的解决方案:

const addDays = days => date => {
  const result = new Date(date);

  result.setDate(result.getDate() + days);

  return result;
};

用法:

// Without the pipeline operator...
addDays(7)(new Date());

// And with the pipeline operator...
new Date() |> addDays(7);

如果您需要更多功能,我建议查看日期fns库。

最简单的答案是,假设需要在当前日期上增加1天:

var currentDate = new Date();
var numberOfDayToAdd = 1;
currentDate.setDate(currentDate.getDate() + numberOfDayToAdd );

要逐行向您解释此代码的作用:

创建名为currentDate的当前日期变量。默认情况下,“new Date()”会自动将当前日期分配给变量。创建一个变量以保存要添加到日期的天数(您可以跳过此变量,直接使用第三行中的值)通过给定相同的值+所需的数字来更改Date的值(因为Date是保存在对象中的月份的日期)。切换到下个月将是自动的

这类函数有问题,我用parseInt()解决

Date.prototype.addDays = function(dias) {

    var date = new Date(this.valueOf());
    date.setDate(parseInt(date.getDate()) + parseInt(dias));
    return date;
}

Date.prototype.addMonths = function(months) {
    var date = new Date(this.valueOf());
    date.setMonth(parseInt(date.getMonth()) + parseInt(months));
    return date;
}


Date.prototype.addYears = function(years) {
    var date = new Date(this.valueOf());
    date.setFullYear(parseInt(date.getFullYear()) + parseInt(years));
    return date;
}

没有变量的通用原型,它应用于现有的Date值:

Date.prototype.addDays = function (days) {
    return new Date(this.valueOf() + days * 864e5);
}

短:

函数addDays(日期,数字){const newDate=新日期(日期);返回新日期(newDate.setDate(newDate.getDate()+number));}控制台日志({明天:addDays(新日期(),1)});

预付款:

函数addDays(日期,数字){const newDate=新日期(日期);返回新日期(newDate.setDate(Date.getDate()+number));}函数addMonths(日期,数字){const newDate=新日期(日期);返回新日期(newDate.setMonth(newDate.getMonth()+number));}函数addYears(日期,数字){const newDate=新日期(日期);返回新日期(newDate.setFullYear(newDate.getFullYear)+number);}函数getNewDate(dateTime){let date=新日期();let number=parseInt(dateTime.match(/\d+/)[0]);if(dateTime.indexOf('-')!=-1)number=(-number);如果(dateTime.indexOf('day')!=-1)date=addDays(日期,数字);否则如果(dateTime.indexOf('month')!=-1)date=addMonths(日期,数字);否则如果(dateTime.indexOf('year')!=-1)date=addYears(日期,数字);返回日期;}控制台日志({明天:获取新日期(“+1天”),昨天:getNewDate('-1day'),nextMonth:getNewDate(“+1个月”),nextYear:getNewDate(“+1年”),});

使用jperl提供的修复程序