添加天数

时间:2013-08-27 10:10:57

标签: javascript date

我找到了一段代码,可以在给定日期添加天数。但是它仅在日期为YY-MM-DD格式时才有效,但如果格式为DD-MM-YY格式则无效。

{p> Fiddle YY-MM-DD格式(工作)

DD-MM-YY格式的

Fiddle (不工作)

我进一步检查了如果我对someDate.getDate()发出提醒,则说NaN不是数字

someDate = new Date('27-08-2013');
alert(someDate.getDate()); //NaN 

任何帮助都将受到高度赞赏。

2 个答案:

答案 0 :(得分:1)

我总是创建7个函数,在JS中使用日期:addSeconds,addMinutes,addHours,addDays,addWeeks,addMonths,addYears。 它们都以任何格式工作。

您可以在此处查看示例:http://jsfiddle.net/tiagoajacobi/YHA8x/

使用方法:

var now = new Date();
console.log(now.addWeeks(3));

这是功能:

        Date.prototype.addSeconds = function(seconds) {
            this.setSeconds(this.getSeconds() + seconds);
            return this;
        };

        Date.prototype.addMinutes = function(minutes) {
            this.setMinutes(this.getMinutes() + minutes);
            return this;
        };

        Date.prototype.addHours = function(hours) {
            this.setHours(this.getHours() + hours);
            return this;
        };

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

        Date.prototype.addWeeks = function(weeks) {
            this.addDays(weeks*7);
            return this;
        };

        Date.prototype.addMonths = function (months) {
            var dt = this.getDate();

            this.setMonth(this.getMonth() + months);
            var currDt = this.getDate();

            if (dt !== currDt) {  
                this.addDays(-currDt);
            }

            return this;
        };

        Date.prototype.addYears = function(years) {
            var dt = this.getDate();

            this.setFullYear(this.getFullYear() + years);

            var currDt = this.getDate();

            if (dt !== currDt) {  
                this.addDays(-currDt);
            }

            return this;
        };

答案 1 :(得分:0)

如果您的输入是DD-MM-YY,您可以尝试split字符串。检查我的小提琴:

http://jsfiddle.net/4RZAa/1/

split字符串,然后在日期函数中输入所需的格式。