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);