2015-10-11 29 views
11

Ich versuche, ein Jahr zum heutigen Datum hinzuzufügen. Ich arbeite in einem System, das es Ihnen nicht erlaubt standard JavaScript zu verwenden.Jahr zum heutigen Datum hinzufügen

Zum Beispiel zum heutigen Datum bekommen muss ich verwenden:

javascript:now(); 

Ich habe versucht:

javascript:now(+1); 

Ich habe das noch nie gesehen, aber ich bin in Not von einem Jahr auf das Hinzufügen heutiges Datum ...

Hat jemand gesehen, das gegenwärtige Datum auf diese Weise vorher zu bekommen? Und wenn ja, wie könnte ich ein Jahr hinzufügen?

+1

Mögliches Duplikat von [Wie in Javascript ein Jahr ab jetzt bestimmen] (http://stackoverflow.com/questions/8609261/how-to-determine-one-year-from-now-in-javascript) – rnevius

+0

Dies ist kein Duplikat.Wie ich oben sagte, nicht in der Lage, Standard-Javascript-Methodik zu verwenden – Code

+2

Es könnte hilfreich sein, wenn Sie uns einen Einblick in welches System dieser Code ausgeführt wird. –

Antwort

24

Sie können ein neues Date-Objekt mit dem heutigen Datum mit dem folgenden Code erstellen:

var d = new Date(); 
console.log(d); 
// => Sun Oct 11 2015 14:46:51 GMT-0700 (PDT) 

Wenn Sie ein Datum eine bestimmte Zeit erstellen möchten, können Sie das neue Datum Konstruktor Argumenten übergeben

var d = new Date(2014); 
console.log(d) 
// => Wed Dec 31 1969 16:00:02 GMT-0800 (PST) 

Wenn Sie das heutige Datum nehmen und ein Jahr hinzufügen möchten, können Sie zunächst ein Datumsobjekt erstellen, auf die relevanten Eigenschaften zugreifen und dann ein neues Datumsobjekt erstellen.

var d = new Date(); 
var year = d.getFullYear(); 
var month = d.getMonth(); 
var day = d.getDate(); 
var c = new Date(year + 1, month, day) 
// => Tue Oct 11 2016 00:00:00 GMT-0700 (PDT) 

Sie können mehr über die Methoden zum Zeitpunkt Objekt auf MDN lesen

Date Object

+10

Es ist nicht notwendig, zwei Datumsobjekte zu erstellen. 'd.setFullYear (d.getFullYear() + 1)' erledigt den Job in viel weniger Code. – RobG

+1

aber Sie werden auch das ursprüngliche Datum verlieren –

+0

Dann: 'var d = neues Datum (+ originalDate)' kopiert das ursprüngliche Datum. – RobG

22

Verwenden Date.prototype.setFullYear Methode um das Jahr einzustellen, was Sie es haben wollen.

Zum Beispiel:

var aYearFromNow = new Date(); 
aYearFromNow.setFullYear(aYearFromNow.getFullYear() + 1); 

Es gibt wirklich nicht eine andere Art und Weise mit Daten in JavaScript zu arbeiten, wenn diese Methoden nicht in der Umgebung vorhanden sind, mit dem Sie arbeiten.

0

Die Antworten hier funktionieren in der Regel, aber ich schrieb eine component, die einige Schaltjahr-Funktionalität hinzugefügt. Es funktioniert auch mit anderen Zeiteinheiten (Monate, Tage, Wochen usw.).

normal Beispiel:

var originalDate = new Date('January 5, 2017 12:00:00'); 
var newDate = dateAdd(originalDate, 1, 'year'); // => January 5, 2018 12:00:00 

Schaltjahr Beispiel:

var originalDate = new Date('February 29, 2016 12:00:00'); 
var newDate = dateAdd(originalDate, 1, 'year'); // => February 28, 2017 12:00:00 

Mit anderen Methoden ein Jahr Zugabe 1. März zurückkommen würde, aber das scheint mir sinnvoller, da sie den richtigen Monat unterhält.

Sie können die Komponente gerne importieren, um die Methode dateAdd() zu verwenden.

0

// Dieses Codeelement behandelt auch die Schaltjahr-Addition.

function updateExpiryDate(controlID, value) { 
    if ($("#ICMEffectiveDate").val() != '' && 
     $("#ICMTermYears").val() != '') { 

     var effectiveDate = $("#ICMEffectiveDate").val(); 
     var date = new Date(effectiveDate); 
     var termYears = $("#ICMTermYears").val(); 

     date = new Date(date.setYear(date.getFullYear() + parseInt(termYears))); 
     var expiryDate = (date.getMonth() + 1) + '/' + date.getDate() + '/' + date.getFullYear(); 
     $('#ICMExpiryDate').val(expiryDate); 
    } 
} 
Verwandte Themen