150 lines
4.7 KiB
PHP
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>
|