2017-03-20 5 views
0

habe ich eine Variable in Javascript wie:Javascript hinzufügen Monat Variable

var a = "2015/05/04"; 

Wie füge ich/subtrahieren Monate auf die Variable wie:

a.getMonths() + 1;  

, die in Folge hat " 2015/06/04 "

Ich habe versucht, die GetMonths() zu tun und die Warnung zeigt das Ergebnis nicht an.

+0

Können Sie den Moment dafür verwenden? –

+0

'a' ist eine Zeichenfolge. Versuchen Sie, ein Datum daraus zu erstellen. – Marco

Antwort

1

ein Datum Objekt erstellen und Monate hinzufügen, wie gezeigt:

var a = new Date("2015/05/04"); 
a.setMonth(a.getMonth() + 1); // add months 
a.setMonth(a.getMonth() - 2); // subtract months 

Beispiel:

var a = new Date("2015/05/04"); 
 
print(); 
 

 
a.setMonth(a.getMonth() + 1); 
 
print(); 
 

 
a.setMonth(a.getMonth() - 2); 
 
print(); 
 

 
function print() { 
 
    stdout.innerHTML += a.toISOString() + '\n'; 
 
}
<pre id="stdout"></pre>

+0

Das ist, was ich gesucht habe. Ich habe das Attribut setMonth vermisst. Vielen Dank –

2

Zuerst müssen Sie moment.js auf Ihrer Seite einzufügen:

var a = "2015/05/04"; 
 
var date = moment(a, "YYYY/MM/DD"); 
 
date.add(1, 'months') 
 
var result = date.format("YYYY/MM/DD");+ 
 
alert(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.0/moment.js"></script>

Als nächstes diesen Algorithmus implementieren. IMHO ist es der einfachste und richtigste Weg.

+0

Danke Pavlo, das ist auch eine gute Alternative, aber ich kann moment.js nicht verwenden, sonst wäre diese Option großartig. –

1

Wenn Sie nicht moment.js nicht verwenden wollen oder können, dann ist hier eine einfache JavaScript-Ansatz:

var a = "2015/05/04"; 
 
var dateparts = a.split("/"); 
 

 
var date = new Date(dateparts[0], dateparts[1], dateparts[2]); 
 

 
date = new Date(date.setMonth(date.getMonth() + 1)); 
 
console.log(date.getFullYear() + '/' + date.getMonth() + '/' + date.getDate());

0

Das ist für dich (https://jsfiddle.net/kL96nhfx/)

ausrechnen kann
var a = "2015/05/04"; 
var res = ''; 

function editMonth(date, amount) { 
    var dateSplit = date.split('/'); 
    var tmp = ''; 

    tmp = parseInt(dateSplit[1]); 
    tmp += amount; 


    if (tmp > 12) { 
    dateSplit[1] = parseInt(tmp/12); 

    if (tmp < 10) { 
     dateSplit[1] = '0' + tmp.toString(); 
    } else { 
     dateSplit[1] = tmp.toString(); 
    } 

} else if (tmp <= 0) { 
    tmp = 1; 
    dateSplit[1] = '0' + tmp.toString(); 
} else { 
    dateSplit[1] = '0' + tmp.toString(); 
} 

return dateSplit.join('/') 
}; 

res = editMonth(a, 1); 
console.log(res); 

Nur Moment.js ist 129KB nicht komprimiert (https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.0/moment.js). Es sei denn, du machst nichts bestimmtes IMHO, ich würde es nicht benutzen. Es ist einfach nutzlos Overhead

Verwandte Themen