2012-06-13 6 views
6

Znam sposób to zrobić w Java:Jak zdobyć trzy miesiące temu data javascript w formacie jak YYYYDDMM skutecznie

Calendar c5 = Calendar.getInstance(); 
c5.add(Calendar.MONTH, -6); 
c5.getTime(); //It will give YYYYMMDD format three months ago. 

Czy istnieje sposób, aby zrobić to w javascript. Wiem, że mogę użyć Data d = nowa data(); przeanalizuj go i wykonaj kod, aby uzyskać format. Ale teraz nie chcę robić parsowania i dostać trzy miesiące temu.

+1

Oczywiście możesz użyć biblioteki takiej jak [date.js] (http://www.datejs.com/), która prawdopodobnie zawiera około 25 kB rzeczy, których nie użyjesz do zrobienia czegoś, co może zrobić 5 linii kodu JavaScript. – epascarello

+1

@epascarello Naprawdę chcę zobaczyć twój 5-liniowy kod javascript z wszystkimi skrajnymi przypadkami;) – javaMan

Odpowiedz

17
var dt = new Date('13 June 2013'); 
dt.setMonth(dt.getMonth()-1) 

Następnie można użyć tego fragmentu kodu z this answer aby przekształcić go do rrrrmmdd

Date.prototype.yyyymmdd = function() { 
    var yyyy = this.getFullYear().toString(); 
    var mm = (this.getMonth()+1).toString(); // getMonth() is zero-based 
    var dd = this.getDate().toString(); 
    return yyyy + (mm[1]?mm:"0"+mm[0]) + (dd[1]?dd:"0"+dd[0]); // padding 
    }; 

d = new Date(); 
d.yyyymmdd(); 

coś być ostrożnym. Jeśli masz 31 marca i odejmujesz miesiąc, co się dzieje? Nie możesz dostać 31 lutego! Aby uzyskać więcej informacji, zobacz odpowiedź this.