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 ' )) ? "Sí " : "No " ) . "\n" ;
77+ ?>
0 commit comments