10
 
01/03/2021

PHP: formatear la fecha y hora del sistema (función)

PHP: formatear la fecha y hora del sistema (función)Esta es una función en PHP para imprimir la fecha y hora en diferentes formatos disponibles para nuestros proyectos web.

En el siguiente recurso muestro una función que formatea la fecha y hora que se pasa como argumento de tipo cadena donde se especifica un formato válido.

La función requiere dos parámetros ($date y $format = "G" ) para su correcto uso, aunque si se omite el parámetro $format se asume el valor de "G".

Podemos pasar el valor de 'now' como marca de tiempo que se usa para calcular las fechas relativas o una cadena correctamente formateada en los siguientes formatos: «2021-03-01 00:30:45» o «2021-03-01».

Puede visualizar un ejemplo a través de una demostración en vivo.

Para comprender el código es necesario conocer lo siguiente:

  • Se requieren conocimientos básicos de HTML y php.
  • El código implementado fue probado en la versión 7.3 de php y un entorno de prueba de Apache
  • La función php ha sido nombra como «my_date_formats»

Función en PHP para formatear fecha y hora del sistema

<?php

/**
* Función PHP para formatear fecha y hora del sistema
* @function my_date_formats
* @param $date, $format
* @return string formato de fecha
*/

function my_date_formats( $date, $format = 'G' ) {
if( preg_match_all( '/^([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2})+$/', $date ,$coin )
|| preg_match_all( '/^([0-9]{4})-([0-9]{2})-([0-9]{2})+$/', $date ,$coin ) ) {
$opt = array( 'L' => array( 'WEEK' => array( 'Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado' )
, 'MONTH' => array( '', 'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre' ) )
, 'C' => array( 'WEEK' => array( 'Dom', 'Lun', 'Mar', 'Mié', 'Jue', 'Vie', 'Sab' )
, 'MONTH' => array( '', 'Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic' ) ) );
$week['L'] = $opt['L']['WEEK'][date( 'w', strtotime( $date ) )];
$week['C'] = $opt['C']['WEEK'][date( 'w', strtotime( $date ) )];
$day = date( 'd', strtotime( $date ) );
$month['L'] = $opt['L']['MONTH'][date( 'n', strtotime( $date ) )];
$month['C'] = $opt['C']['MONTH'][date( 'n', strtotime( $date ) )];
$mon = date( 'm', strtotime( $date ) );
$year = date( 'Y', strtotime( $date ) );
$time = array( '12' => date( 'h:i:s a', strtotime( $date ) )
, '24' => date( 'H:i:s', strtotime( $date ) ) );
$tz = array( 'E' => date ( 'e', strtotime( $date ) )
, 'O' => date ( 'O', strtotime( $date ) )
, 'T' => date ( 'T', strtotime( $date ) ) );
$date = array( 'A' => $day.'/'.$mon.'/'.$year
, 'B' => $day.' '.$month['C'].' '.$year
, 'C' => $day.' '.$month['L'].' '.$year
, 'D' => $year.'-'.$mon.'-'.$day
, 'E' => $day.'/'.$mon.'/'.$year.' '.$time['12']
, 'F' => $day.'-'.$month['C'].'-'.$year.' '.$time['24']
, 'G' => $week['C'].', '.$day.' de '.$month['C'].' de '.$year.' a la(s) '.$time['12']
, 'H' => date( 'c', strtotime( $date ) )
, 'I' => date( 'r', strtotime( $date ) )
, 'J' => $week['L'].', '.$day.' de '.$month['L'].' de '.$year.' a la(s) '.$time['24'].' (UTC '.$tz['O'].')'
, 'K' => ' (UTC '.$tz['E'].')'
, 'L' => ' (UTC '.$tz['O'].')'
, 'M' => ' (UTC '.$tz['T'].')' );
return array_key_exists( $format, $date ) ? $date[$format] : '';
}
}
?>

Invocando la función my_date_formats

<?php

// Pasando la fecha y hora actual del sistema con 'now' omitiendo $format

echo '("G") = '.my_date_formats( date( 'Y-m-d H:i:s', strtotime( 'now' ) ) )."<br /><br />";

// Pasando la fecha y hora actual del sistema con 'now' dado un parámetro para $format

echo '("A") = '.my_date_formats( date( 'Y-m-d H:i:s', strtotime( 'now' ) ), 'A' )."<br />";
echo '("B") = '.my_date_formats( date( 'Y-m-d H:i:s', strtotime( 'now' ) ), 'B' )."<br />";
echo '("C") = '.my_date_formats( date( 'Y-m-d H:i:s', strtotime( 'now' ) ), 'C' )."<br />";
echo '("D") = '.my_date_formats( date( 'Y-m-d H:i:s', strtotime( 'now' ) ), 'D' )."<br /><br />";
echo '("E") = '.my_date_formats( date( 'Y-m-d H:i:s', strtotime( 'now' ) ), 'E' )."<br />";
echo '("F") = '.my_date_formats( date( 'Y-m-d H:i:s', strtotime( 'now' ) ), 'F' )."<br />";
echo '("G") = '.my_date_formats( date( 'Y-m-d H:i:s', strtotime( 'now' ) ), 'G' )."<br />";
echo '("H") = '.my_date_formats( date( 'Y-m-d H:i:s', strtotime( 'now' ) ), 'H' )."<br />";
echo '("I") = '.my_date_formats( date( 'Y-m-d H:i:s', strtotime( 'now' ) ), 'I' )."<br />";
echo '("J") = '.my_date_formats( date( 'Y-m-d H:i:s', strtotime( 'now' ) ), 'J' )."<br /><br />";
echo '("K") = '.my_date_formats( date( 'Y-m-d H:i:s', strtotime( 'now' ) ), 'K' )."<br />";
echo '("L") = '.my_date_formats( date( 'Y-m-d H:i:s', strtotime( 'now' ) ), 'L' )."<br />";
echo '("M") = '.my_date_formats( date( 'Y-m-d H:i:s', strtotime( 'now' ) ), 'M' )."<br /><br />";

// Pasando la fecha y hora fija en formato US

echo '("A") = '.my_date_formats( '2021-03-01 00:30:45', 'A' )."<br />";
echo '("B") = '.my_date_formats( '2021-03-01 00:30:45', 'B' )."<br />";
echo '("C") = '.my_date_formats( '2021-03-01 00:30:45', 'C' )."<br />";
echo '("D") = '.my_date_formats( '2021-03-01 00:30:45', 'D' )."<br />";
echo '("E") = '.my_date_formats( '2021-03-01 00:30:45', 'E' )."<br />";
echo '("F") = '.my_date_formats( '2021-03-01 00:30:45', 'F' )."<br />";
echo '("G") = '.my_date_formats( '2021-03-01 00:30:45', 'G' )."<br />";
echo '("H") = '.my_date_formats( '2021-03-01 00:30:45', 'H' )."<br />";
echo '("I") = '.my_date_formats( '2021-03-01 00:30:45', 'I' )."<br />";
echo '("J") = '.my_date_formats( '2021-03-01 00:30:45', 'J' )."<br />";
echo '("K") = '.my_date_formats( '2021-03-01 00:30:45', 'K' )."<br />";
echo '("L") = '.my_date_formats( '2021-03-01 00:30:45', 'L' )."<br />";
echo '("M") = '.my_date_formats( '2021-03-01 00:30:45', 'M' )."<br />";

?>
Consulta Lo+ Top de Lenguajes De Programación
Todos los titulares en un solo lugar...