IFCD0210/Practicas/Practicas_PHP/ejercicios/EJERCICIO4_PHP_Fechas.php
Marcos Lopez 8ba2e6d10b PHP
2024-02-08 13:52:31 +01:00

150 lines
4.7 KiB
PHP

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>EJERCICIO4 PHP con FECHAS</title>
</head>
<body>
<h2>Forma 1 Calcula tu edad con años, meses y días.</h2>
<?php
// Fecha de nacimiento de la persona
//$fecha_nacimiento = '1987-06-15';
$fecha_randon=date("Y-m-d", rand(-500000000, 500000000));
$fecha_nacimiento=$fecha_randon;
// Convertir la fecha de nacimiento a objeto de fecha
$fecha_nacimiento_obj = new DateTime($fecha_nacimiento);
// Fecha actual
$fecha_actual = new DateTime();
// Calcular la diferencia entre las fechas (la edad)
$diferencia = $fecha_actual->diff($fecha_nacimiento_obj);
//var_dump($diferencia);
// Obtener los componentes de la diferencia
$años = $diferencia->y;
$meses = $diferencia->m;
$dias = $diferencia->d;
// Mostrar la edad
echo "La edad de la persona es: $años años, $meses meses y $dias días";
?>
<h2>Forma 2 Calcula tu edad con años, meses y días.</h2>
<?php
// Fecha de nacimiento de la persona
$fecha_nacimiento = '15-06-1987';
// Convertir la fecha de nacimiento a UNIX
$fecha_nacimiento_unix = strtotime($fecha_nacimiento);
// Fecha actual
$fecha_actual =time();
// Calcular la diferencia entre las fechas (la edad)
$diferencia_segundos = $fecha_actual - $fecha_nacimiento_unix;
// Calcular años, meses y días
$años = floor($diferencia_segundos / (365 * 24 * 60 * 60)); // Asumiendo un año de 365 días
$meses = floor(($diferencia_segundos % (365 * 24 * 60 * 60)) / (30 * 24 * 60 * 60)); // Asumiendo un mes de 30 días
$dias = floor(($diferencia_segundos % (30 * 24 * 60 * 60)) / (24 * 60 * 60)); // Asumiendo un día de 24 horas
// Mostrar la edad
echo "La edad de la persona es: $años años, $meses meses y $dias días";
?>
<h2>Calcula la fecha de vencimiento de una factura a 30 días desde hoy</h2>
<?php
// Plazo de pago en días
$plazo_pago_dias = 30;
// Obtener la fecha actual
$fecha_actual_emision = new DateTime();
// Sumar el plazo de pago en días para obtener la fecha de vencimiento
$fecha_vencimiento_obj = $fecha_actual_emision->modify("+$plazo_pago_dias days");
// Obtener la fecha de vencimiento en formato legible
$fecha_vencimiento = $fecha_vencimiento_obj->format('d-m-Y');
// Mostrar la fecha de vencimiento
echo "La fecha de vencimiento de la factura es: $fecha_vencimiento";
?>
<h2>Calcula los días que faltan para tu cumpleaños partiendo de la fecha de nacimiento</h2>
<?php
// Fecha de nacimiento de la persona
$fecha_nacimiento = '07-02-1974';
// Nacimiento en tiempo UNIX
$fecha_nacimiento_unix = strtotime($fecha_nacimiento);
// Fecha actual
$fecha_actual = date('d-m-Y');
// Próximo cumpleaños
$proximo_cumpleaños = date('d-m', $fecha_nacimiento_unix) . '-' . date('Y');
if ($proximo_cumpleaños < $fecha_actual) {
$proximo_cumpleaños = date('d-m', $fecha_nacimiento_unix) . '-' . (date('Y') + 1);
}
if ($proximo_cumpleaños == $fecha_actual) {
echo 'Hoy es tu cumpleaños';
echo '<br>';
}
// Creo los objetos de las fechas
$fecha_actual_obj = new DateTime($fecha_actual);
$proximo_cumpleaños_obj = new DateTime($proximo_cumpleaños);
// Calcular la diferencia entre las fechas
$diferencia = $fecha_actual_obj->diff($proximo_cumpleaños_obj);
// Acceder a los días del intervalo
$dias = $diferencia->days;
// Faltan x días
echo "Faltan $dias días para tu cumpleaños";
?>
<h2>Crea una función para saber si una fecha es fin de semana</h2>
<?php
// Función para verificar si una fecha es un fin de semana
function esFinDeSemana($fecha) {
// Convertir la fecha a un objeto DateTime
$fecha_obj = new DateTime($fecha);
// Obtener el día de la semana (0 para domingo, 6 para sábado)
global $dia_semana;
$dia_semana = $fecha_obj->format('w');
// Verificar si el día de la semana es sábado o domingo
return ($dia_semana == 0 || $dia_semana == 6);
}
// Ejemplo de fecha
$fecha_ejemplo = '1987-06-25'; // Viernes
// Array días semana Español
$dias_semana = [
'domingo',
'lunes',
'martes',
'miércoles',
'jueves',
'viernes',
'sábado'
];
// Verificar si la fecha es un fin de semana
if (esFinDeSemana($fecha_ejemplo)) {
echo "$fecha_ejemplo es un fin de semana. Es $dias_semana[$dia_semana]. ";
} else {
echo "$fecha_ejemplo no es un fin de semana. Es $dias_semana[$dia_semana].";
}
?>
</body>
</html>