Usuario:ManuelRomero/CertificadoWeb2021/IntroduccionPHP/funciones

De WikiEducator
Saltar a: navegación, buscar

Volver


Funciones de fechas

  • En php hay muchas fucniones para gestionar fechas, siendo esta una tarea frecuente el las aplicaciones web.


Icon inter.gif
Referencias de funciones de fechas en php
https://www.php.net/manual/es/ref.datetime.php


  • Vamos a estudiar 5 funciones siendo dos de ellas muy utilizadas



  • En php se trabaja mucho con las fechas. Para tal cometido existe una clase llamada DateTime y DateTimeInterface (https://www.php.net/manual/es/class.datetime.php), pero muchas de sus acciones se pueden hacer de forma imperativa con funciones que vamos a ver.

time()

Obtiene una marca de tiempo 
https://www.php.net/manual/es/function.time.php
  • Esta es una función muy importante en php que conviene entender bien.
  • Me retorna el número de segundos transcurridos desde el 1 de Enero de 1970 00:00:00 GMT.

Esta fecha está relacionada con el sistema operativo UNIX que empezó a hacerse visible a partir del año 1970




  • La función time retorna un entero largo numérico


Icon activity.jpg
usar time()
  • Prueba a visualizar el retorno de la función time()
  • Mira lo que ocurre si recargas la página en ejecución, como se van actualizando los segundos



Icon qmark.gif
Pregunta
Entiendes por qué camba el valor






date()

  • La función convierte un timestamp en una fecha como cadena de caracteres con el formato que le especifiquemos
  • Para ver los metaracteres que representan el formato puedes ver la referencia web de la función

Esta función admite dos parámetros, uno de ellos es obligatoria


Icon activity.jpg
funcion date()
data("formato_fecha", "timestamp") 
parámetro 1
formato_fecha

Es un string formado por metacaracteres y caracteres literales que establece el formato en el cual queremos ver la fecha (d/m/y H:i:s), por ejemplo, donde d representa el número de día, m del mes ... y los caracteres / y : apareceran literales en la cadena

parametro 2
timestamp

Es una fecha en formato timestamp o entero largo como segundos desde una fecha Si no se establece, se toma el instante actual, es decir el resultado de la función time()





Icon activity.jpg
Ejemplo de uso de date
<?php
 
$fecha_actual =date("d/m/Y H:i:s");
echo "<h1>La fecha actual es $fecha_actual</h1>";
 
$fecha_futura =date("d/m/Y H:i:s", time()+24*60*60);
echo "<h1>La fecha de mañana será  $fecha_futura</h1>";





strtotime()

Convierte un string a fecha. https://www.php.net/manual/es/function.strtotime.php
  • Esta función admite dos parámetros, uno de ellos es obligatoria


Icon activity.jpg
funcion strtotime
strtotime("fecha_como_string", "timestamp") 
parámetro 1
fecha_como_string
Es una cadena que representa una fecha
Debemos facilitarla con el formato que entienda el sistema 
Por defecto "mes/dia/year"
parametro 2
timestamp (opcional, si no se aporta, se toma el valor que retorno time()
Es una fecha en formato timestamp o entero largo como segundos desde una fecha
Icon present.gif
Tip: Recuerda que stamptime es un entero largo que respresenta un número de segundos desde el 1 de enero de 1970





Si quisiéramos cambiar el formato, podemos usar la función data_default_timezone_set("Zona_horaria")
Descripción de la función https://www.php.net/manual/es/function.date-default-timezone-set.php
Listado agrupado de diferentes zonas horarias https://www.php.net/manual/es/timezones.php 
  • Por ejemplo
<?php
$dia= 27;
$mes = 12;
$year = 2001;
 
$fecha_string="$dia-$mes-$year";
date_default_timezone_set('Europe/Madrid');
$tiempo = strtotime($fecha_string);
echo "<h1>Marca de tiempo de $fecha_string <span style='color:red'>$tiempo</h1>";
El código anterior imprimirá

Strtotime1.png



Icon activity.jpg
Ejemplo de uso de strtotime
<?php
$dia =27;
$mes=11;
$year=2001;
 
$fecha ="$mes/$dia/$year";
$time = strtotime($fecha);
echo "<h2>Valor de $fecha es $time</h2>h2>";
<br/>




strftime()

https://www.php.net/manual/es/function.strftime.php
  • Da formato a una fecha según el idioma establecido
  • Para poder ver el uso de esta función , debemos establecer uno de los idiomas que tengamos instalados en el sistema.
  • Para realizar esta acción debemos usar la función setlocale
setlocale()
https://www.php.net/manual/es/function.setlocale.php

Esta función establece un idioma para la fecha, monedas,... Para poder usar esta función debemos tener instalado en el sistema ese conjunto de caracteres de formato para la localidad deseada

Para ver las localidades instaladas puedes usar el comando locale
  • En caso de no tenerlo instalarlo hay que hacerlo previamente


Icon activity.jpg
Comando relacionados con instalación-configuración de locales
Para instalarlo
 sudo apt-get install locales
Ver locales actualmente instalados
 locale -a
Para instalar nuevos locales
 sudo dpkg-reconfigure locales
Para instalar una localidad (locale) concreta
 sudo locale-gen "en_US.utf8"




  • Saldrá un menú y seleccionaremos las localidades. Vamos a probar teniendo instalados 3 locales
  1. es_ES.UTF-8 Español
  2. fr_FR.UTF-8 Francés
  3. en_US.UTF-8 Inglés

Esta función retorna false o bien la localidad esablecida, si todo ha ido bien


Icon activity.jpg
Probando strftime
  • Mostrar el día de la semana actual en 3 idiomas: inglés, francés y castellano




checkdate(mes, dia, year)

  • Esta función recibe tres enteros que representan una fecha y retorna un booleano que idica si la fecha es o no correcta