2012-05-15 17 views
17

Tengo una cadena que contiene 8 dígitos que representan una fecha. Por ejemplo:Convertir cadenas devueltas (YYYYMMDD) a la fecha

20120515 

me gustaría compararlo con fecha de hoy, creado de esta manera:

var currentDate = new Date(); 

¿Cómo puedo convertir la "cadena de fecha 8 dígitos" a un formato de fecha adecuada en para compararlo con currentDate?

+1

¿Qué lenguaje de programación? – Julian

+0

Obviamente, esta es su primera pregunta, pero ¿qué lenguaje de programación está utilizando? – Kaf

+0

Oh, lo siento. JavaScript. – kirbyjwilson

Respuesta

27

Utilice el método de subcadena y la subcadena de 4 elementos y asígnelos a su nueva fecha del año. Luego, substring off dos elementos a la vez y almacenar el mes y la fecha en consecuencia.

var dateString = "20120515"; 
var year  = dateString.substring(0,4); 
var month  = dateString.substring(4,6); 
var day   = dateString.substring(6,8); 

var date  = new Date(year, month-1, day); 
var currentDate = new Date(); 

Ahora puede comparar las dos fechas con los operadores normales.

+0

Sí, eso tiene sentido. ¡Gracias! – kirbyjwilson

+0

@kirbyjwilson Recuerde marcar esta respuesta como correcta si solucionó su problema. – jurgemaister

+1

Creo que necesita agregar uno al segundo parámetro pasado a ['.substring()'] (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substring) - extrae de la primer índice hasta _pero sin incluir_ el segundo índice, por lo que '.substring (0,3)' solo toma los primeros tres caracteres ... – nnnnnn

13

Si desea una biblioteca de fecha pequeña, puede usar moment.js.

var a = moment("20120515", "YYYYMMDD"); 
// then use any of moment's manipulation or display functionality 
a.format("MMM Do YYYY"); // May 15th 2012 
a.fromNow(); // 14 hours ago 
a.calendar(); // Today at 12:00 AM 
+1

genio! para futuros lectores, se puede encadenar: 'momento(). format()' –

+0

¿Qué es esto Moment.js ... es esta lib definida previamente? –

+0

@saidesh, echa un vistazo a http://momentjs.com/ – timrwood

Cuestiones relacionadas