> Faqs > Recuperar fechas de un formulario con PHP y descomponerlas en años, meses y días

Recuperar fechas de un formulario con PHP y descomponerlas en años, meses y días

Ok, cuando nosotros los novatos en progamación buscamos una solución a un problema que no sabemos resolverlo, en mi caso calcular la diferencia de tiempo entre dos (2) fechas dadas, supongo que ustedes deben imaginarse que tengo un código en html.

<!doctype html>
	<html>
		<head>
			<meta charset = "utf-8">
			<title>
				Pagina para calcular el tiempo transcurrido entre dos fechas.
			</title>
		</head>
		<body>
			<form action = "timeago.php" method = "post">
				<label for = "fecha">Fecha</label>
				<input id = "fecha" name = "fecha" type = "date"><br />< /br>
				<input type="submit" value="Enviar">
			</form>
		</body>
	</html>

Entonces veo que publican códigos y códigos para calcular fechas, pero no dicen cómo ni donde usarlo y ponerlo, trato de entender pero no veo como esos códigos que ponen, me capturen la fecha que envío desde una caja de tipo fecha, osea como la captura y procesa y como me lo muestra, el código abajo como lo uso.????

Me refiero al código de desarrolloweb.com/articulos/calcular-dias-entre-dos-fechas-php.html

Respuestas

Para recuperar datos que te vienen de un formulario tienes que usar el array $_POST de PHP.

En el artículo Procesar variables de formularios puedes empezar la lectura, aprendiendo a recibir los datos que te vienen de formulario.

Para tu caso concreto solamente tienes un input de fecha, por lo que necesitarás otro campo input para la segunda fecha. Ojo a los espacios en el código HTML que están mal. No sé si será de copiar y pegar.

<input id="fecha" name="fecha" type="date"><br />< /br>
<input id="fecha2" name="fecha2" type="date2"><br />< /br>

Así que en tu página timeago.php tendrás que recibir esos valores de esta manera:

$fecha1 = $_POST["fecha"];
$fecha2 = $_POST["fecha2"];

Luego tendrías que romper la fecha en varios pedazos. Suponiendo que hayas escrito algo como "31/12/2020", entonces podrías sacar los pedazos así:

$pedazos_fecha1 = explode('/', $fecha1);

Con esos pedazos ya puedes definir las variables iniciales de ese ejemplo que nos mandas, por ejemplo:

// para definir las partes de la fecha 1
$ano1 = $pedazos_fecha1[2];
$mes1 = $pedazos_fecha1[1];
$dia1 = $pedazos_fecha1[0];

El código para producir los pedazos de la fecha2 es idéntico. Con ambos juegos de variables ya puedes hacer el ejemplo.

El resto del código ya sería lo que tienes en el artículo de Calcular días entre dos fechas con PHP.

Yo te recomendaría hacerte una función que te hiciera todo ese proceso, así podrías reutilizarla más veces.

Al principio puede parecer complejo pero es todo practicar.

Miguel Angel
3090 138 206 17