php

Extraer año, mes o día de alguna fecha en PHP

Introducción

Las fechas en PHP son una cosa a la que todo programador se enfrenta algún día.

Hoy veremos cómo extraer año, mes o día de alguna fecha en PHP.

Esto sirve cuando tenemos determinada fecha y queremos conocer únicamente algún dato (mes, día, hora, minutos).

Extraer año, mes o día de alguna fecha en PHP

Representación entera, no como cadena

Como primer paso debemos tener la fecha en formato entero, es decir, que represente los segundos transcurridos desde la fecha Unix.

Si tenemos una fecha como cadena, por ejemplo “2018-07-30T20:55:20” podemos obtener su representación entera con strtotime, así:

<?php
$fecha = "2018-07-30T20:55:20";
$fechaComoEntero = strtotime($fecha);

Y si sólo queremos saber la fecha actual, utilizamos la función time que devuelve el tiempo transcurrido desde la época Unix hasta el día de hoy (con segundos y minutos y todo eso).

Una vez que ya tenemos nuestra fecha como entero, es hora de obtener lo que necesitamos.

Formateando para obtener valores

PHP proporciona otra función llamada date que recibe como primer argumento el formato que queremos aplicar a una fecha, y como segundo argumento recibe el tiempo transcurrido desde la época Unix representado como segundos.

Los formatos pueden verse en la documentación oficial, pero aquí sólo vamos a extraer valores.

Obtener o extraer año

Para obtener el año con cuatro dígitos, hacemos esto:

<?php
/*
Asumimos que $fechaComoEntero es
como su nombre lo dice una variable entera, que
calculamos con los ejemplos mostrados arriba
*/$anio = date("Y", $fechaComoEntero);

Lo que da una salida como 2017, 2018, etcétera. Utilizamos la letra Y mayúscula que nos da precisamente el año.

Obtener o extraer mes

<?php
/*
Asumimos que $fechaComoEntero es
como su nombre lo dice una variable entera, que
calculamos con los ejemplos mostrados arriba
*/$mes = date("m", $fechaComoEntero);

En este caso usamos al modificador m. Devuelve un entero desde el 0 hasta el 11. El cero representa a enero y el 11 a diciembre.

Obtener o extraer día

<?php
/*
Asumimos que $fechaComoEntero es
como su nombre lo dice una variable entera, que
calculamos con los ejemplos mostrados arriba
*/$dia = date("d", $fechaComoEntero);

Ahora utilizamos d. Esto regresa un valor entre 1 y el número de días que tenga el mes de la fecha (no es como el del mes que empieza desde cero).

El valor regresado incluye ceros a la izquierda. Por ejemplo 01, 02, etcétera.

Obtener o extraer hora

Para esto utilizamos H así:

<?php
/*
Asumimos que $fechaComoEntero es
como su nombre lo dice una variable entera, que
calculamos con los ejemplos mostrados arriba
*/$hora = date("H", $fechaComoEntero);

La hora es devuelta con valores desde 00 hasta 23. Es decir, las 0 horas son las 12 de la noche y las 23 son las 11 de la noche. Notar por favor que devuelve la hora con ceros a la izquierda.

Minutos y segundos

Para los minutos y segundos utilizamos i y s respectivamente:

<?php
/*
Asumimos que $fechaComoEntero es
como su nombre lo dice una variable entera, que
calculamos con los ejemplos mostrados arriba
*/$minutos = date("i", $fechaComoEntero);
$segundos = date("s", $fechaComoEntero);

Cabe mencionar que ambos valores van de 00 hasta 59 y que son devueltos con ceros a la izquierda.

Ejemplo completo

He aquí un ejemplo completo de la fecha “2018-07-30T20:55:20”:

<?php
$fecha = "2018-07-30T20:55:20";
$fechaEntera = strtotime($fecha);
$anio = date("Y", $fechaEntera);
$mes = date("m", $fechaEntera);
$dia = date("d", $fechaEntera);
 
$hora = date("H", $fechaEntera);
$minutos = date("i", $fechaEntera);
$segundos = date("s", $fechaEntera);
 
#Notar que es lo mismo que hacer
# date("Y-m-d H:i:s")
 
echo "$anio-$mes-$dia $hora:$minutos:$segundos";

La salida es casi la misma fecha, pero esto sólo es para ejemplificar cómo se extrae cada cosa.

Y aquí uno de la fecha actual:

<?php
/*
    Gran nota: cuando llamamos a date y
    no le pasamos el segundo argumento,
    se asume que la fecha es time() por
    lo que...
 
        $fechaEntera = time();
        $anio = date("Y", $fechaEntera);
 
    Es lo mismo que...
 
        $anio = date("Y");
*/$fechaEntera = time();
$anio = date("Y", $fechaEntera);
$mes = date("m", $fechaEntera);
$dia = date("d", $fechaEntera);
 
$hora = date("H", $fechaEntera);
$minutos = date("i", $fechaEntera);
$segundos = date("s", $fechaEntera);
 
#Notar que es lo mismo que hacer
# date("Y-m-d H:i:s")
 
echo "$anio-$mes-$dia $hora:$minutos:$segundos";
?>

 

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

  • Si quiero tomar la fecha guardada en una base de datos, y no tomar la actual o predefinir una, como lo hago?
    Ejemplo del controller{
    $articulos = DB::table('articulos')
    ->select('articulos.titulo','articulos.autorEs','articulos.fecha','articulos.volumen','articulos.nombreRevista','articulos.dePagina','articulos.aPagina','articulos.nombreEvidencia','t.nombreTipoArticulo')
    ->join('tipoarticulos as t','articulos.tipoarticulo_id','=','t.id')
    ->where('articulos.activo','=',1)
    ->where('articulos.estadoLogico','=',1)
    ->get();
    return view('Produccion.Articulos',compact('articulos'));
    }
    ejemplo del blade{
    {{$datos_articulos->autorEs}}, {{$datos_articulos->fecha}}, {{$datos_articulos->titulo}}, {{$datos_articulos->nombreRevista}}, vol({{$datos_articulos->volumen}}), pp({{$datos_articulos->dePagina}} - {{$datos_articulos->aPagina}})
    }

Entradas recientes

Servidor HTTP en Android con Flutter

El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…

3 días hace

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

4 días hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

1 semana hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

2 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

3 semanas hace

Esta web usa cookies.