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

120 lines
4.1 KiB
PHP

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Intro4 FECHAS PHP</title>
</head>
<body>
<h1>FECHAS</h1>
<?php
// Establecer la zona horaria a tu zona local
date_default_timezone_set('Europe/Madrid');
// Fecha UNIX a formato normal(ISO)
$origin_date = '1654560000'; // Fecha UNIX, podemos utilizar time() para obtenerla en segundos.
// Función date(formato,tiempo UNIX) obtiene un string con formato de fecha.
$iso_date = date('d-m-Y', intval($origin_date)); // intval(pasar a número) pasar a formato ISO la fecha
// new DateTime() crea un objeto de fecha, podemos pasarle un timestamp o una fecha(string)
$date = new DateTime($iso_date);
/*
METODO FORMAT
Y: Año con cuatro dígitos (por ejemplo, 2024).
y: Año con dos dígitos (por ejemplo, 24).
m: Mes con dos dígitos (por ejemplo, 02 para febrero).
d: Día del mes con dos dígitos (por ejemplo, 06).
w: Día de la semana (0 Domingo).
H: Hora en formato de 24 horas con dos dígitos (por ejemplo, 17 para las 5 p.m.).
i: Minutos con dos dígitos (por ejemplo, 30).
s: Segundos con dos dígitos (por ejemplo, 45).
Día de la semana: D (abreviatura de tres letras), l (nombre completo del día de la semana).
*/
echo $date->format('d/m/Y'); // 07/06/2022
echo '<br>';
// Obtener el día del mes
echo $date->format('d'); // 07
echo '<br>';
// Obtener el día del año
echo $date->format('z'); // 157
echo '<br>';
// Obtener el nombre del mes
echo $date->format('F'); // June
echo '<br>';
//strtotime
// Convertir una cadena de fecha y hora en un timestamp Unix
$timestamp_fecha_hora = strtotime('2022-12-25 18:30:00');
echo "Timestamp de 25 de diciembre de 2022 a las 18:30:00: $timestamp_fecha_hora\n";
echo '<br>';
// Manejo de cadenas relativas
$timestamp_manana = strtotime('tomorrow');
echo "Timestamp de mañana: $timestamp_manana\n";
echo '<br>';
echo date('d-m-Y', intval($timestamp_manana));
echo '<br>';
//Obtener la fecha y hora actual:
//Como objeto de fecha DateTime
$fechaActual = new DateTime();
echo $fechaActual->format('Y-m-d H:i:s');
echo '<br>';
var_dump($fechaActual);
echo '<br>';
// Solo fecha
echo $fechaActual->format('d-m-Y');
// Dia semana tres letras en inglés
echo '<br>';
echo $fechaActual->format('D');
echo '<br>';
// Pasar una fecha string a un objeto date
$fechaString = '2024-02-06';
$fechaX = new DateTime($fechaString);
echo $fechaX->format('d-m-Y');
echo '<br>';
// METODO MODIFY
// Sumar o restar días a una fecha:
$fechaZ = new DateTime('2024-02-06');
$fechaZ->modify('+10 days');
echo $fechaZ->format('Y-m-d');
echo '<br>';
// METODO DIFF // Objeto DateInterval
// Calcular la diferencia entre hoy y otra fecha
$fechaHoy = new DateTime();
var_dump($fechaHoy);
echo '<br>';
echo $fechaHoy->format('Y-m-d');
echo '<br>';
$fecha2 = new DateTime('2027-02-10');
$diferencia = $fechaHoy->diff($fecha2);// Objeto DateInterval
var_dump($diferencia);
echo '<br>';
echo $diferencia->days;// Días totales del intervalo
echo '<br>';
echo $diferencia->h;
echo '<br>';
echo "Faltan $diferencia->days días , $diferencia->h horas y $diferencia->i minutos";
echo '<br>';
// Convierte la diferencia en días con decimales
$diasDecimales = $diferencia->days + ($diferencia->h / 24) + ($diferencia->i / 1440);
echo ceil($diasDecimales);
echo '<br>';
// Calcula la diferencia total en minutos
$totalMinutos = ($diferencia->days * 24 * 60) + ($diferencia->h * 60) + $diferencia->i;
echo "$totalMinutos minutos";
echo '<br>';
echo $diasDiferencia = $diferencia->days;
// Y entre dos fechas
echo '<br>';
$fecha1X = new DateTime('2024-02-06'); // De 00:00:00 a 00:00:00
$fecha2X = new DateTime('2024-02-10');
$diferencia = $fecha1X->diff($fecha2X);
echo $diferencia->format('%R%a días');
?>
</body>
</html>