Hola oskar.
Cita:
Iniciado por oskar_calvo
Por favor corregidme.
if (preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/([0-9][0-9]){1,2}/",$fecha))
entiendo que la expresión regular es para verificar que se han introducido únicamente campos numéricos y que estan en el rango correspondiente de día mes y año
La expresión regular que usas, no comprueba el rango de fechas, solo comprueba que el formato sea algo así: X/X/X o XX/X/XX o X/X/XX etc...
Cita: esta linea es la que se me resiste:
$nueva = mktime(0,0,0, $mes,$dia,$año) + $ndias * 24 * 60 * 60;
$nuevafecha=date("d-m-Y",$nueva);
entiendo que los días que se quieren añadir se convierten a segundos, pero el
mktime (0,0,0, $mes,$dia,$año)
Si, $ndias se pasan a segundos, y el mktime() se hace para pasar al formato UNIX la fecha. Es decir, pasarlos a segundos transcurridos desde el 01/01/70.
Cita: no lo termino de entender y tampoco
$nuevafecha=date("d-m-Y",$nueva);
Eso es para pasar el formato UNIX a fecha que entendamos todos.
Saludos.