CodeIgniter User Guide Version 1.6.1


Asistente de Fecha

El archivo Asistente de Fecha contiene fucniones que ayudan a trabajar con fechas.

Cargando este Asistente

Este asistente es cargado usando el siguiente código:

$this->load->helper('date');

Las siguientes funciones están disponibles:

now()

Devuelve el valor actual como una marca de tiempo de Unix, referenciando al horario local de su servidor o GMT, basado en el "tiempo de referencia" establecido en su archivo de configuración. Si no intenta establecer un tiempo de referencia maestro a GMT (lo cuál tipicamente hará si corre un sistio que le permite a cada usuario establecer su propia configuración de zona horaria) no hay beneficio de usar esta función sobre la función time() de PHP.

mdate()

Esta función es idéntica a la función de PHP date(), excepto que le permite usar estilo de código de fecha de MySQL, conde cada letra de código es precedida con un signo de porcentaje: %Y %m %d etc.

El beneficio de usar fechas de esta forma es que no tiene que preocuparse acerca de escapar cualquier caracter que no sea código de fecha, cómo normalmente tiene que hacer con la función date(). Ejemplo:

$cadenafecha = "Año: %Y Mes: %m Día: %d - %h:%i %a";
$tiempo = time();

echo mdate($cadenafecha, $tiempo);

Si una marca de tiempo no es incluida en el segundo parámetro, el horario actual será usado.

standard_date()

Le permite generar cadenas de fecha en una de los varios formatos estándares. Ejemplo:

$formato = 'DATE_RFC822';
$tiempo = time();

echo standard_date($formato, $tiempo);

El primer parámetro debe contener el formato, el segundo parámetro debe contener una fecha como marca de tiempo de Unix.

Formatos soportados:

local_to_gmt()

Toma una marca de tiempo de Unix como entrada y lo devuelve como GMT. Ejemplo:

$ahora = time();

$gmt = local_to_gmt($ahora);

gmt_to_local()

Tome una marca de tiempo de Unix (referenciado a GMT) como entrada, y lo convierte en una marca de tiempo localizado basado en la zona horaria y tiempo de ahorro de energía envíado. Ejemplo:

$marca_de_tiempo = '1140153693';
$zonadetiempo = 'UM8';
$ahorro_de_energia = TRUE;

echo gmt_to_local($marca_de_tiempo, $zonadetiempo, $ahorro_de_energia);

Nota: Para una lista de zonas horarias vea la referencia al final de esta página.

mysql_to_unix()

Toma una marca de tiempo como entrada y lo devuelve como Unix. Ejemplo:

$mysql = '20061124092345';

$unix = mysql_to_unix($mysql);

unix_to_human()

Toma una marca de tiempo Unix como entrada y la devuelve en formato leíble por humanos con este prototipo:

AAAA-MM-DD HH:MM:SS AM/PM

Esto puede ser útil si necesita mostrar una fecha en un campo de formulario para envío.

Al tiempo se le puede dar formato con o sin segundos, y puede ser establecido para el formato europeo o estadounidanse. Si sólo la marca de tiempo es enviada, devolverá el tiempo sin los segundos con formato de EE.UU. Ejemplos:

$ahora = time();

echo unix_to_human($ahora); // tiempo de EE.UU., sin segundos

echo unix_to_human($ahora, TRUE, 'us'); // tiempo de EE.UU., con segundos

echo unix_to_human($ahora, TRUE, 'eu'); // Tiempo de Europa con segundos

human_to_unix()

Lo opuesto a la función anterior. Toma un tiempo "humano" como entrada y lo devuelve como Unix. Esta función es útil si acepto que fechas con formato "humano" dates sean enviados a través de un formulario. Devuelve FALSE (booleano) si la cadena de fecha pasada no tiene el formato como se indica arriba. Ejemplo:

$ahora = time();

$humano = unix_to_human($ahora);

$unix = human_to_unix($humano);

timespan()

Da formato a una marca de tiempo unix para que aparezca de una forma similar a esta:

1 Año, 10 Meses, 2 Semanas, 5 Días, 10 Horas, 16 Minutos

El primer parámetro debe contener una marca de tiempo Unix. El segundo debe contener una marca de tiempo que sea mayor a la primera. Si el segundo es vacío, el horario actual será usado. El propósito más común para esta función es mostrar cuando tiempo pasó de un punto en el tiempo pasado a ahora. Ejemplo:

$fecha_de_envio = '1079621429';
$ahora = time();

echo timespan($fecha_de_envio, $ahora);

Nota: El texto generado por esta función es encontrado en el siguiente archivo de lenguaje: language/<your_lang>/date_lang.php

days_in_month()

Devuelve el número de días de un mes/año dado. Toma años bisiestos en cuenta. Ejemplo:

echo days_in_month(06, 2005);

Si el segundo parámetro es vacío, el año actual será usado.

timezones()

Toma una zona horaria de referencia (por una lista de zonas horarias válidas, vea la "Referencia de Zona Horaria" debajo) y devuelve un número de horas desde UTC.

echo timezones('UM5');

Esta función es útil cuando se usa con timezone_menu().

timezone_menu()

Genera un menú desplegable de zonas horarias como este:

El menú es útil si corre un sitio con membresia en el cual los usuarios pueden establecer su valor de zona horaria local.

El primer parámetro permite establecer el estado "seleccionado" del menu. Por ejemplo, para establecer horario del Pacífico como predeterminado haría esto:

echo timezone_menu('UM8');

Por favor vea la referencia de zona horaria debajo para ver los valores de este menú.

El segundo parámetro permite establecer el atributo class de CSS del menú.

Nota: El texto contenido en el menú es encontrado en el siguiente archivo de lenguaje: language/<your_lang>/date_lang.php

Referencia de Zona Horaria

La siguiente tabla indica cada zona horaria y su ubicación.

Time Zone Location
UM12(UTC - 12:00) Enitwetok, Kwajalien
UM11(UTC - 11:00) Nome, Midway Island, Samoa
UM10(UTC - 10:00) Hawaii
UM9(UTC - 9:00) Alaska
UM8(UTC - 8:00) Pacific Time
UM7(UTC - 7:00) Mountain Time
UM6(UTC - 6:00) Central Time, Mexico City
UM5(UTC - 5:00) Eastern Time, Bogota, Lima, Quito
UM4(UTC - 4:00) Atlantic Time, Caracas, La Paz
UM25(UTC - 3:30) Newfoundland
UM3(UTC - 3:00) Brazil, Buenos Aires, Georgetown, Falkland Is.
UM2(UTC - 2:00) Mid-Atlantic, Ascention Is., St Helena
UM1(UTC - 1:00) Azores, Cape Verde Islands
UTC(UTC) Casablanca, Dublin, Edinburgh, London, Lisbon, Monrovia
UP1(UTC + 1:00) Berlin, Brussels, Copenhagen, Madrid, Paris, Rome
UP2(UTC + 2:00) Kaliningrad, South Africa, Warsaw
UP3(UTC + 3:00) Baghdad, Riyadh, Moscow, Nairobi
UP25(UTC + 3:30) Tehran
UP4(UTC + 4:00) Adu Dhabi, Baku, Muscat, Tbilisi
UP35(UTC + 4:30) Kabul
UP5(UTC + 5:00) Islamabad, Karachi, Tashkent
UP45(UTC + 5:30) Bombay, Calcutta, Madras, New Delhi
UP6(UTC + 6:00) Almaty, Colomba, Dhakra
UP7(UTC + 7:00) Bangkok, Hanoi, Jakarta
UP8(UTC + 8:00) Beijing, Hong Kong, Perth, Singapore, Taipei
UP9(UTC + 9:00) Osaka, Sapporo, Seoul, Tokyo, Yakutsk
UP85(UTC + 9:30) Adelaide, Darwin
UP10(UTC + 10:00) Melbourne, Papua New Guinea, Sydney, Vladivostok
UP11(UTC + 11:00) Magadan, New Caledonia, Solomon Islands
UP12(UTC + 12:00) Auckland, Wellington, Fiji, Marshall Island