javascript - Hur man lägger till antal dagar till dagens datum?


Jag behöver kunna lägga till 1, 2, 5 eller 10 dagar till dagens datum med jQuery.

Svar #1

Du kan använda JavaScript, ingen jQuery krävs:

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

Svar #2

Detta är för 5 dagar:

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

Du behöver inte JQuery, du kan göra det i JavaScript, hoppas du förstår.

Svar #3

Du kan utöka JavaScript Date-objektet så här

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

och i din javascript-kod kunde du anropa

var currentDate = new Date();
// to add 4 days to current date
currentDate.addDays(4);

Svar #4

Varför inte helt enkelt använda

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

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

eller -5 för att ta bort 5 dagar

Svar #5

Ren JS-lösning, med datum formaterat i YYYY-mm-dd-format

var someDate = new Date('2014-05-14');
someDate.setDate(someDate.getDate() + 15); //number  of days to add, e.x. 15 days
var dateFormated = someDate.toISOString().substr(0,10);
console.log(dateFormated);

Svar #6

[UPPDATERING] Överväg att läsa detta innan du fortsätter...

Moment.js

Installera moment.js härifrån.

npm : $ npm i --save moment

Bower : $ bower install --save moment

Nästa,

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

Länk Ref : http://momentjs.com/docs/#/manipulating/add/

Moment.js är ett fantastiskt Javascript-bibliotek för att hantera Date-objekt

Lycka till.

Svar #7

Prototyp-lösningen från Krishna Chytanya är mycket bra, men behöver en mindre men viktig förbättring. Parametern days måste parsas som ett heltal för att undvika konstiga beräkningar när days är en sträng som "1". (Jag behövde flera timmar för att ta reda på vad som gick fel i min applikation.)

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

Även om du inte använder denna prototype-funktion: Se alltid till att ha ett heltal när du använder setDate().

Svar #8

Om tiderna i Datumet inte behövs, kan du helt enkelt använda datumobjektets metoder för att extrahera Månad, År och Dag och lägga till "n" antal dagar till Dagen.

var n=5; //number of days to add. 
var today=new Date(); //Today's Date
var requiredDate=new Date(today.getFullYear(),today.getMonth(),today.getDate()+n)

Ref:Mozilla Javascript HämtaDatum

Redigera: Ref: Mozilla JavaScript Date

Svar #9

Det accepterade svaret här gav mig oförutsägbara resultat, ibland märkligt nog lade det till månader och år.

Det mest pålitliga sättet jag kunde hitta fanns här Lägg till dagar till Javascript Date-objektet och öka även månaden

var dayOffset = 20;
var millisecondOffset = dayOffset * 24 * 60 * 60 * 1000;
december.setTime(december.getTime() + millisecondOffset); 

REDIGERA: Även om det har fungerat för vissa personer, tror jag inte att det är helt korrekt. Jag skulle rekommendera att gå med ett mer populärt svar eller använda något som http://momentjs.com/

Svar #10

function addDays(n){
    var t = new Date();
    t.setDate(t.getDate() + n); 
    var month = "0"+(t.getMonth()+1);
    var date = "0"+t.getDate();
    month = month.slice(-2);
    date = date.slice(-2);
     var date = date +"/"+month +"/"+t.getFullYear();
    alert(date);
}

addDays(5);

Relaterade artiklar