2012-06-13 12 views
6

Conosco un modo per farlo in java:Come ottenere tre settimane fa data in javascript nel formato YYYYDDMM efficiente

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

c'è un modo per farlo in javascript. So che posso usare Date d = new Date(); analizzalo e fai del codice per ottenere il formato. Ma ora non voglio fare analisi e ottenere tre mesi fa.

+1

Certo, puoi usare una libreria come [date.js] (http://www.datejs.com/) che probabilmente contiene circa 25kb di cose che non dovrai usare per fare qualcosa che possono fare 5 linee di JavaScript. – epascarello

+1

@epascarello Voglio davvero vedere il tuo codice javascript di 5 righe con tutti i casi di bordo coperti;) – javaMan

risposta

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

Quindi è possibile utilizzare questo pezzo di codice da this answer per convertirlo in YYYYMMDD

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

Qualcosa stare attenti. Se sei al Mar 31 e sottrai un mese, cosa succede? Non puoi ottenere il 31 febbraio! Vedi la risposta this per maggiori dettagli.

Problemi correlati