Skip to content

Commit 87fae4e

Browse files
committed
#14 php
1 parent 46e7778 commit 87fae4e

File tree

1 file changed

+77
-0
lines changed

1 file changed

+77
-0
lines changed

Roadmap/14 - FECHAS/php/eulogioep.php

+77
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
<?php
2+
/**
3+
* Ejercicio de manejo de fechas en PHP
4+
* Este script demuestra diferentes operaciones y formatos con fechas
5+
*/
6+
7+
// PARTE 1: Crear variables de fecha y calcular años transcurridos
8+
9+
// Creamos la fecha actual
10+
$fechaActual = new DateTime();
11+
12+
// Creamos una fecha de nacimiento (ejemplo)
13+
$fechaNacimiento = new DateTime('1990-05-15 14:30:00');
14+
15+
// Calculamos la diferencia entre las fechas
16+
$diferencia = $fechaActual->diff($fechaNacimiento);
17+
18+
echo "Fecha actual: " . $fechaActual->format('Y-m-d H:i:s') . "\n";
19+
echo "Fecha de nacimiento: " . $fechaNacimiento->format('Y-m-d H:i:s') . "\n";
20+
echo "Años transcurridos: " . $diferencia->y . "\n\n";
21+
22+
// PARTE 2: DIFICULTAD EXTRA - Formatear la fecha de 10 maneras diferentes
23+
24+
echo "DIFERENTES FORMATOS DE FECHA:\n";
25+
26+
// 1. Día, mes y año
27+
echo "1. Día, mes y año: " . $fechaNacimiento->format('d/m/Y') . "\n";
28+
29+
// 2. Hora, minuto y segundo
30+
echo "2. Hora, minuto y segundo: " . $fechaNacimiento->format('H:i:s') . "\n";
31+
32+
// 3. Día del año
33+
echo "3. Día del año: " . $fechaNacimiento->format('z') . " (comenzando desde 0)\n";
34+
35+
// 4. Día de la semana
36+
$diasSemana = ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'];
37+
echo "4. Día de la semana: " . $diasSemana[$fechaNacimiento->format('w')] . "\n";
38+
39+
// 5. Nombre del mes
40+
$meses = ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio',
41+
'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'];
42+
echo "5. Nombre del mes: " . $meses[$fechaNacimiento->format('n') - 1] . "\n";
43+
44+
// 6. Formato largo personalizado
45+
setlocale(LC_TIME, 'es_ES.UTF-8');
46+
echo "6. Formato largo: " . strftime('%A, %d de %B de %Y', $fechaNacimiento->getTimestamp()) . "\n";
47+
48+
// 7. Formato ISO 8601
49+
echo "7. Formato ISO 8601: " . $fechaNacimiento->format('c') . "\n";
50+
51+
// 8. Semana del año
52+
echo "8. Semana del año: " . $fechaNacimiento->format('W') . "\n";
53+
54+
// 9. Trimestre del año
55+
$trimestre = ceil($fechaNacimiento->format('n') / 3);
56+
echo "9. Trimestre del año: " . $trimestre . "\n";
57+
58+
// 10. Timestamp Unix
59+
echo "10. Timestamp Unix: " . $fechaNacimiento->getTimestamp() . "\n";
60+
61+
// Funciones auxiliares de ejemplo
62+
function obtenerEdad($fechaNacimiento) {
63+
$hoy = new DateTime();
64+
$edad = $hoy->diff($fechaNacimiento);
65+
return $edad->y;
66+
}
67+
68+
function esBisiesto($año) {
69+
return date('L', strtotime("$año-01-01")) == 1;
70+
}
71+
72+
// Ejemplo de uso de funciones auxiliares
73+
echo "\nFUNCIONES AUXILIARES:\n";
74+
echo "Edad calculada: " . obtenerEdad($fechaNacimiento) . " años\n";
75+
echo "¿El año de nacimiento es bisiesto? " .
76+
(esBisiesto($fechaNacimiento->format('Y')) ? "" : "No") . "\n";
77+
?>

0 commit comments

Comments
 (0)