Usted tendrá que crear una función para extraer las partes de la fecha y utilizarlos con el Date
constructor.
Tenga en cuenta que este constructor trata los meses como números basados en cero (0=Jan, 1=Feb, ..., 11=Dec
).
Por ejemplo:
function parseDate(input) {
var parts = input.match(/(\d+)/g);
// note parts[1]-1
return new Date(parts[2], parts[1]-1, parts[0]);
}
parseDate('31.05.2010');
// Mon May 31 2010 00:00:00
Editar: Para el manejo de un de formato variable se podría hacer algo como esto:
function parseDate(input, format) {
format = format || 'yyyy-mm-dd'; // default format
var parts = input.match(/(\d+)/g),
i = 0, fmt = {};
// extract date-part indexes from the format
format.replace(/(yyyy|dd|mm)/g, function(part) { fmt[part] = i++; });
return new Date(parts[fmt['yyyy']], parts[fmt['mm']]-1, parts[fmt['dd']]);
}
parseDate('05.31.2010', 'mm.dd.yyyy');
parseDate('31.05.2010', 'dd.mm.yyyy');
parseDate('2010-05-31');
La función anterior acepta un parámetro formato, que debe incluir los marcadores de posición yyyy
mm
y dd
, los separadores no son realmente importantes, ya que solo los dígitos son capturados por RegExp.
También puede dar un vistazo a DateJS, una pequeña biblioteca que hace que la fecha de análisis indoloro ...
me gustaría procesar el mm/dd/aaaa y dd/mm/aaaa también – Michel
@Michel eche un vistazo a mi edición. – CMS
¡Excelente! ¡Funciona de maravilla! Odio aunque no tengo ni idea de cómo funciona :) – Michel