Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/09/2007, 19:35
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: fecha extraída de un CURP a formato YYYY-MM-DD

Hola Escoffie:

He creado una función, dale el visto bueno:
Código:
function curp2date(curp) {
	var m = miCurp.match( /^\w{4}(\w{2})(\w{2})(\w{2})/ );
	//miFecha = new Date(año,mes,dia) 
	var anyo = parseInt(m[1],10)+1900;
	if( anyo < 1950 ) anyo += 100;
	var mes = parseInt(m[2], 10)-1;
	var dia = parseInt(m[3], 10);
	return (new Date( anyo, mes, dia ));
}
Te devuelve un objeto Date() dado un string con tu CURP.

Luego ya si lo quieres imprimir en la página con el formato que quieras puedes sobreescribir el método toString() de Date():
Código PHP:
Date.prototype.toString = function() {
    var 
anyo this.getFullYear();
    var 
mes this.getMonth()+1;
    if( 
mes<=mes "0"+mes;
    var 
dia this.getDate();
    if( 
dia<=dia "0"+dia;
    return 
anyo+"-"+mes+"-"+dia;

Y ya sólo quedaría un ejemplo completo:
Código:
var miCurp = "XXXX970807MSPJRN01";

function curp2date(curp) {
	var m = miCurp.match( /^\w{4}(\w{2})(\w{2})(\w{2})/ );
	//miFecha = new Date(año,mes,dia) 
	var anyo = parseInt(m[1],10)+1900;
	if( anyo < 1950 ) anyo += 100;
	var mes = parseInt(m[2], 10)-1;
	var dia = parseInt(m[3], 10);
	return (new Date( anyo, mes, dia ));
}

Date.prototype.toString = function() {
	var anyo = this.getFullYear();
	var mes = this.getMonth()+1;
	if( mes<=9 ) mes = "0"+mes;
	var dia = this.getDate();
	if( dia<=9 ) dia = "0"+dia;
	return anyo+"-"+mes+"-"+dia;
}

document.write( curp2date(miCurp) );


Para pasarlo a PHP necesitas enviar un formulario de tu página, o utilizar AJAX, que es un método más transparente pero un poco más complicado.


Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.