Portada » Lenguaje PHP » Diferencia entre dos fechas Datetime con PHP

Diferencia entre dos fechas Datetime con PHP

Diferencia entre dos fechas Datetime con PHP. En este artículo veremos la manera de calcular la diferencia entre dos fechas de tipo datetime generadas mediante un formulario HTML. Podemos calcular el año, los meses, los días, las horas, los minutos y los segundos de un determinado rango de fechas ingresadas por el usuario.

La utilización de diferencias de fechas se puede utilizar en varias situaciones o validaciones en el desarrollo de sistemas web.

Usaremos el paremetro DIFF de PHP

Diferencia entre dos fechas Datetime con PHP

Por ejemplo, cuando generamos facturas y los registros de cada producto podemos almacenarlo en tablas temporales, y de un determinado periodo de tiempo se tienen que borrar.

Estructura del ejercicio PHP

Librerías y estilos que usaremos para generar el cuadro de dialogo el cual mostrara el calendario en jQuery. Una vez seleccionado la fecha esta ingresara de manera dinámica a los dos «input» que tenemos en nuestro formulario.

<link type="text/css" href="css/jquery-ui-1.8.13.custom.css" rel="stylesheet" />
<script type="text/javascript" src="js/jquery-1.5.1.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.13.custom.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-timepicker-addon.js"></script>
<script type="text/javascript">
 $.datepicker.regional['es'] = {
 closeText: 'Cerrar',
 prevText: '<Ant',
 nextText: 'Sig>',
 currentText: 'Hoy',
 monthNames: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
 monthNamesShort: ['Ene','Feb','Mar','Abr', 'May','Jun','Jul','Ago','Sep', 'Oct','Nov','Dic'],
 dayNames: ['Domingo', 'Lunes', 'Martes', 'Miercoles', 'Jueves', 'Viernes', 'Sabado'],
 dayNamesShort: ['Dom','Lun','Mar','Mi?','Juv','Vie','Sab'],
 dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','Sa'],
 weekHeader: 'Sm',
 dateFormat: 'yy-mm-dd', changeMonth: true, changeYear: true, yearRange: '-100:+2',
 firstDay: 1,
 isRTL: false,
 showMonthAfterYear: false,
 yearSuffix: ''
 };
 $.datepicker.setDefaults($.datepicker.regional['es']);
	$(function(){
		$('#moda1').datetimepicker({
			showSecond: true,
			timeFormat: 'hh:mm:ss'
		});

		$('#moda2').datetimepicker({
			showSecond: true,
			timeFormat: 'hh:mm:ss',
			stepHour: 2,
			stepMinute: 10,
			stepSecond: 10
		});
	});

</script>

Un formulario para ingresar las fechas

<!-- Contenido --> 
<form method="POST" action="">
  <div class="form-group">
    <label for="fecha">Fecha inicial:</label>
    <input required type="text" class="form-control" name="fecha1" placeholder="Ingrese fecha inicial" id="moda1" value="<?php if(isset($_POST["fecha1"])){ echo $_POST["fecha1"];}?>">
  </div>
  
  
  <div class="form-group">
    <label for="fecha">Fecha actual:</label>
    <input required type="text" class="form-control" name="fecha2" placeholder="Ingrese fecha actual" id="moda2" value="<?php if(isset($_POST["fecha2"])){ echo $_POST["fecha2"];}?>">
  </div>
	<input name="calculo" type="hidden" value="v">	
<input class="btn btn-primary" type="submit" value="Calcular diferencia">
</form>

 <!-- Fin Contenido -->
Calcular diferencia entre dos fechas Datetime PHP
Calcular diferencia entre dos fechas Datetime PHP

Codigo PHP que sera el encargado de relizar la operacion de calculo de fechas

<?php
if(isset($_POST["calculo"])){
	
$fecha1=$_POST["fecha1"];
$fecha2=$_POST["fecha2"];

$fechainicial = new DateTime($fecha1);
//fecha inicial 
$fechaactual = new DateTime($fecha2);
//fecha de cierre 
$diferencia = $fechainicial->diff($fechaactual); 

?>
<ul class="list-group">
  <li class="list-group-item"><strong>Años: </strong><?php echo $diferencia->format('%Y Años');?></li>
  <li class="list-group-item"><strong>Meses: </strong><?php echo $diferencia->format('%m Meses');?></li>
  <li class="list-group-item"><strong>Dias: </strong><?php echo $diferencia->format('%d Dias');?></li>
  <li class="list-group-item"><strong>Horas: </strong><?php echo $diferencia->format('%H horas');?></li>
  <li class="list-group-item"><strong>Minutos: </strong><?php echo $diferencia->format('%i minutos');?></li>
  <li class="list-group-item"><strong>Segundos: </strong><?php echo $diferencia->format('%s segundos');?></li>
</ul>
<?php
}
?>
Diferencia entre dos fechas Datetime con PHP
Diferencia entre dos fechas Datetime con PHP

CONCLUSIÓN

Si deseabas calcular fechas de tipo» DATETIME» esta es la solución, te dejamos un fichero para que puedan descargarlo e implementarlo en sus sistemas web.

Como les comentaba. Podemos usarlo en varios casos, por ejemplo.

  • Calcular citas médicas.
  • Edades de alumnos.
  • Años de trabajo en la empresa.
  • Entre otras opciones, etc.

DEMOSTRACIÓN

Ver Demo

DESCARGA

Descargar Código Fuente

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuarlo!

Promedio de puntuación 0 / 5. Recuento de votos: 0

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio
Esta web utiliza cookies propias para su correcto funcionamiento. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.
Privacidad