120 lines
4.1 KiB
PHP
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>
|