如何将天数添加到今天的日期?

IT技术 javascript jquery date
2021-02-01 13:01:19

我需要能够使用 jQuery 将 1、2、5 或 10 天添加到今天的日期。

6个回答

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

var someDate = new Date();
var numberOfDaysToAdd = 6;
someDate.setDate(someDate.getDate() + numberOfDaysToAdd); 

格式化为dd/mm/yyyy

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

var someFormattedDate = dd + '/'+ mm + '/'+ y;
供参考的日期对象
2021-03-14 13:01:19
像大多数 javascript 一样,内置的日期处理功能非常强大,但完全不直观。
2021-03-17 13:01:19
仅用于文档,您可以使用方法添加 o 减去天数setDate您传递给该方法的数字是否大于 31 并不重要,它甚至可能是一个负值。
2021-03-20 13:01:19
@Joel:同意,这是一个令人头疼的事情setDate()非直观是一个很好的描述。
2021-03-23 13:01:19
我不会称这种为dd/mm/yyyy格式。我称之为d/m/yyyy
2021-04-05 13:01:19

这是5天:

var myDate = new Date(new Date().getTime()+(5*24*60*60*1000));

你不需要 JQuery,你可以用 JavaScript 来完成,希望你能明白。

这对我来说就像约会部分的魅力。
2021-03-17 13:01:19
我认为这是目前我找到的最干净的解决方案。谢谢
2021-03-20 13:01:19
闰秒,夏令时 - 不起作用
2021-03-25 13:01:19
或者,为了进一步简化,5 天: let myDate = new Date(Date.now() + 5 * 86400000);
2021-03-27 13:01:19
进一步扩大,增加180分钟 new Date(new Date().getTime()+(180*60*1000))
2021-04-09 13:01:19

您可以像这样扩展 javascript Date 对象

Date.prototype.addDays = function(days) {
    this.setDate(this.getDate() + parseInt(days));
    return this;
};

在你的 javascript 代码中你可以调用

var currentDate = new Date();
// to add 4 days to current date
currentDate.addDays(4);
@Ferryvandenheuvel 是对的,因为 Krishnas 解决方案需要一个微小但重要的改进才能安全,如果天数以字符串而不是整数形式给出:请参阅我在stackoverflow.com/a/20468397/2732083下面的评论
2021-03-20 13:01:19
这对我有用。出于某种原因,如果没有 parseInt,我会在添加日期时得到奇怪的结果(提前几个月),但减去天数效果很好。你怎么知道要添加 parseInt?
2021-03-22 13:01:19
太棒了,就像一个魅力。
2021-03-23 13:01:19
@Ferryvandenheuvel:不是真的。所提出的方法工作得很好。
2021-04-08 13:01:19
那是行不通的……结果是增加天数会变得很奇怪。
2021-04-09 13:01:19

为什么不简单地使用

function addDays(theDate, days) {
    return new Date(theDate.getTime() + days*24*60*60*1000);
}

var newDate = addDays(new Date(), 5);

或 -5 删除 5 天

由于 DTS 更改,这将每年失败两次。
2021-03-18 13:01:19
要返回格式化的日期,请使用 **** return (returndate.getMonth() + 1) + "/" + returndate.getDate() + "/" + returndate.getFullYear();
2021-03-26 13:01:19
@jancha 更准确地说,该代码始终将 UTC 等效时间增加 120 小时——这意味着,一年两次,您最终会得到不同的一天中的时间。这可能是您想要的,也可能不是。
2021-03-30 13:01:19
兄弟你的回答太好了,谢谢
2021-04-03 13:01:19
根据有关此功能的 jancha 评论:在 DTS 边界上添加天数会给您不正确的日期/时间结果。因此,最好使用像momentjs这样的已建立的日期库。
2021-04-06 13:01:19

[更新]在继续之前考虑阅读本文...

时刻.js

moment.js这里安装

纳米$ npm i --save moment

凉亭:$bower install --save moment

下一个,

var date = moment()
            .add(2,'d') //replace 2 with number of days you want to add
            .toDate(); //convert it to a Javascript Date Object if you like

链接参考:http : //momentjs.com/docs/#/manipulating/add/

Moment.js是一个了不起的 Javascript 库,用于管理 Date 对象并且在40kb.

祝你好运。

40kb 对于单页应用程序和管理日期来说太多了
2021-03-23 13:01:19
40kb 没问题,它会缓存在浏览器中,所以下载时间只适用于第一页视图。使用宽带连接的用户不会注意到任何区别。
2021-03-25 13:01:19
当我读到这个时,我有同样的反应:momentjs.com/docs
2021-03-25 13:01:19
不幸的是,momentjs 已停止在该项目上工作并且处于仅维护模式:(
2021-03-29 13:01:19
@stackdave 取决于强度。只是添加几天,是的。管理复杂的日期逻辑,没有。
2021-04-01 13:01:19