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:
- DATE_ATOM
- DATE_COOKIE
- DATE_ISO8601
- DATE_RFC822
- DATE_RFC850
- DATE_RFC1036
- DATE_RFC1123
- DATE_RFC2822
- DATE_RSS
- DATE_W3C
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 |