jueves, 7 de agosto de 2014

Las fechas en PHP - 2 de 2




  • La función strtotime() permite convertir un texto en inglés en timestamp, por tanto en fecha.
Por ejemplo:

<?php
//strtotime reenvía un timestamp y la función date() permite mostrar
//la fecha en un formato adecuado desde el timestamp
echo strtotime("now").", ".date(’d-m-Y’,strtotime("now")). "<br />";
echo strtotime("10 September 2011").", ".date(’d-m-Y’,strtotime("10
September 2011")). "<br />";
echo strtotime("next Thursday").", ".date(’d-m-Y’,strtotime("next
Thursday")). "<br />";
echo strtotime("last Tuesday").", ".date(’d-m-Y’,strtotime("last
Tuesday")). "<br />";
echo strtotime("+1 day").", ".date(’d-m-Y’,strtotime("+1 day")). "<br />";
echo strtotime("+1 week").", ".date(’d-m-Y’,strtotime("+1 week")).
"<br />";
echo strtotime("+2 week 2 days 2 hours 2 seconds").", ".date(’d-m-y’,
strtotime("+2 week 2 days 2 hours 2 seconds")). "<br />";
?>

Da como resultado:

1381822566, 15-10-2013
1315605600, 10-09-2011
1381960800, 17-10-2013
1381183200, 08-10-2013
1381908966, 16-10-2013
1382427366, 22-10-2013
1383215768, 31-10-2013

Por tanto, su sintaxis es:

$timestamp = strtotime($cadena)

  • La función strftime() permite convertir una fecha que tiene la forma de timestamp en una cadena formateada correctamente. Toma como parámetro el formato de tipo cadena de caracteres y timestamp como opción, si no quiere la fecha actual. Esta función se utiliza con setlocale(), que permite definir el país en el que nos encontramos.

Por ejemplo:

<?php
setlocal(LC_ALL, "es_ES","esp");
echo strftime("En España el día es: %A <br />");
echo strftime("Hoy es %d %m %Y <br />");
setlocal(LC_TIME, "fr_FR","fra");
echo strftime("En Francia el mes es %B.\n");
?>

Da como resultado:

En España el día es: miércoles
Hoy es 09 10 2013
En Francia el mes es Octobre.

Por tanto, su sintaxis es:

$cadena = strftime($formato)

Opciones de formato:

%d: día del mes, con dos dígitos: de 01 a 31.
%m: número del mes, con dos dígitos: de 01 a 12.
%y: año con dos dígitos: por ejemplo, 01.
%Y: año con cuatro dígitos: por ejemplo, 2001.
%H: hora, con formato 24 h.
%M: minutos con dos dígitos: de 00 a 59.
%S: segundos con dos dígitos: de 00 a 59.
%a: nombre abreviado del día de la semana.
%A: nombre completo del día de la semana.
%j: número del día del año con tres dígitos: de 001 a 365.
%w: número del día de la semana: de 0 = domingo a 6 = sábado.
%u: número del día de la semana: de 1 = lunes a 7 = domingo.
%b o %h: nombre abreviado del mes.
%B: nombre completo del mes.
%U: número de la semana en el año: el primer domingo del año, siendo el primer día de la primera semana.
%W: número de la semana en el año: el primer lunes del año, siendo el primer día de la primera semana.
%V: número de la semana en el año según la normativa ISO 9601.
%c: formato por defecto para la fecha y la hora.
%x: formato por defecto solo para la fecha.
%X: formato por defecto solo para la hora.
%R: idéntico a %H: %M.
%T: idéntico a %H: %M: %S.
%Z: franja horaria, nombre o abreviatura.
%t: tabulación.
%n: vuelta al registro.
%%: un carácter ’%’ literal.

  • La función date_default_timezone_set() establece la diferencia horaria de todas las funciones de fecha y hora. Esta función toma como parámetro el identificador de diferencia horaria, que es una cadena de caracteres con la zona y el país. Si quiere formatear la fecha, debe definir la zona de diferencia horaria; de lo contrario, tendrá un mensaje de advertencia de tipo E_NOTICE.

Por ejemplo, en España:

<?php
date_default_timezone_set(’Europa/Madrid’);
?>

  • La función date_create_from_format() permite devolver un objeto date que se formatea desde una cadena de caracteres que contiene una fecha. Esta función también se llama DateTime::createFromFormat(). Toma como parámetro el formato de tipo cadena de caracteres, la fecha y la hora en forma de cadena de caracteres y, como opción, el objeto DateTimeZone, que define la zona de diferencia horaria. El formato es el mismo que el que se utiliza con la función date().

Por ejemplo:

<?php
date_default_timezone_set(’Europa/Madrid’);
$format = ’Y-m-d H:i:s’;
$date = date_create_from_format($format, ’2011-11-15 12:14:19’);
echo "Muestra con el formato día-mes-año hora:minuto:segundo -> "
.date-formato($date, ’d-m-Y H:i:s’);
?>

Da como resultado:

Muestra con el formato día-mes-año hora:minuto:segundos -> 15-11-2011 12:14:19



Espero haber ayudado en algo. Hasta la próxima oportunidad!







No hay comentarios:

Publicar un comentario en la entrada