2012-06-13 17 views
6

Yo sé una manera de hacerlo en Java:Cómo llegar hace tres o Mes Fecha de en javascript en el formato que YYYYDDMM eficiente

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

¿Hay una manera de hacer esto en javascript. Sé que puedo usar Fecha d = nueva Fecha(); analizar y hacer un código para obtener el formato. Pero ahora no quiero hacer un análisis sintáctico y obtener una fecha de hace tres meses.

+1

Seguro que puedes usar una biblioteca como [date.js] (http://www.datejs.com/) que probablemente tenga alrededor de 25kb de cosas que no usarás para hacer algo que pueden hacer 5 líneas de JavaScript. – epascarello

+1

@epascarello Realmente quiero ver su código de 5 líneas de javascript con todos los casos de borde cubiertos;) – javaMan

Respuesta

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

continuación, puede utilizar esta pieza de código de this answer para convertirlo en AAAAMMDD

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

Algo a tener cuidado. Si estás en Mar 31 y restas un mes, ¿qué ocurre? ¡No puedes recibir el 31 de febrero! Ver this respuesta para más detalles.

Cuestiones relacionadas