Code Igniter Versão 1.5.2 - Guia do Usuário


Assistente de Diretório

O arquivo Assistente de Data contem funções que auxiliam no trabalho com datas.

Carregando este Assistente

Este assistente é carregado usando o seguinte código:

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

As seguinte funções estão disponíveis:

now()

Retorna a hora atual no format Unix timestamp, referente ou ao seu servidor local ou a hora GMT, baseada na "hora referência"("time reference") configurada em seu arquivo de configuração. Se você não pretende configurar sua hora mestre conforme a hora GMT (que normalmente é o que você faz se vocÊ permite que cada usuário ajuste suas próprias configurações de local e data) não haverá benfício em usar esta função ao invés da função time() do PHP.

mdate()

Esta função é idêntica à função date() do PHP, a não ser pelo fato que ela lhe permite usar códigos de data no estilo do MySQL, onde cada código é precedido por uma sinal de percentual: %Y %m %d etc.

O benfício de fazer datas desta maneira é que você não precisa se preocupar em das escape em nenhum caracter que não seja um código de data como você normalmente faria se usasse a função date(). Exemplo:

$stringdedata = "Ano: %Y Mês: %m Dia: %d - %h:%i %a";
$data = time();

echo mdate($stringdedata, $data);

Se o timestamp não estiver incluído no segundo parâmetro a hora atual será usada.

standard_date()

Permite gerar uma string de data em um dos muitos formatos padronizados. Exemplo:

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

echo standard_date($formato, $data);

O primeiro parâmetro deve conter o formato, o segundo deve conter a data como Unix timestamp.

Formatos suportados:

local_to_gmt()

Pega um Unix timestamp como entrada e retonrna como um GMT. Exemplo:

$agora = time();

$gmt = local_to_gmt($agora);

gmt_to_local()

Pega um Unix timestamp (referente ao GMT) como entrada e o converte para um timestamp local basead no fuso e horário de verão enviados. Exemplo:

$timestamp = '1140153693';
$fuso = 'UM8';
$horario_de_verao = TRUE;

echo gmt_to_local($timestamp, $fuso, $horario_de_verao);

Nota: Para uma lista de fusos horários veja a referência no fina desta página.

mysql_to_unix()

Pega um MySQL Timestamp como entrada e o retorna como Unix. Exemplo:

$mysql = '20061124092345';

$unix = mysql_to_unix($mysql);

unix_to_human()

Pega um Unix timestamp como entrada e o retorna num formato legível ao homem com este protótipo:

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

Pode ser útil se você precisar exibir uma data num campo de formulário para envio.

A hora pode ser formatada com ou sem segundos e pode ser ajustada no formato Europeu ou Americano. Se apenas o timestamp for submetido ele retornará a hora sem segundos no formato Americano. Exemplo The time can be formatted with or without seconds, and it can be set to European or US format. If only the timestamp is submitted it will return the time without seconds formatted for the U.S.: $agora = time();

echo unix_to_human($agora); // Formato de hora Americano, sem segundos

echo unix_to_human($agora, TRUE, 'us'); // Formato Americano com segundos

echo unix_to_human($agora, TRUE, 'eu'); // Formato Europeu com segundos

human_to_unix()

Oposto à função acima.Pega a hora "humana" como entrada e retorna no formato Unix. Esta função é útil se você recebe a hora formatada pelo padrão "humano" através de formulário. Retornará FALSE (booleano) se a string de hora passada a ela não estiver formatada como indicado acima. Exemplo:

$agora = time();

$humano = unix_to_human($agora);

$unix = human_to_unix($humano);

timespan()

Formata o unix timestamp de modo que ele fique similar a isto:

1 Ano, 10 Meses, 2 Semanas, 5 Dias, 10 Horas, 16 Minutos

O primeiro parâmetro deve conter um Unix timestamp. O segundo deve conter um timestamp maior ao primeiro timestamp. Se o segundo parâmetro estiver vazio, a hora atual será usada. A finalidade mais comum para esta função é mostrar quanto tempo se passou desde algum ponto no passado até agora. Exemplo:

$hora_passada = '1079621429';
$agora = time();

echo timespan($hora_passada, $agora);

Nota: O texto gerado por esta função é encontrado no seguinte arquivo de idioma:language/<seu_idioma>/date_lang.php

days_in_month()

Retorna o número de dias em um dado mês/ano. Returns the number of days in a given month/year. Computa anos bissextos na contagem. Exemplo:

echo days_in_month(06, 2005);

Se o segundo parâmetro estiver vazio, o ano atual será usado.

timezone_menu()

Geral um menu pull-down de fusos horários, como este:

Este menu é útil se possui um site de cadastros onde cada usuário pode ajustar seu próprio fuso local.

O primeiro parâmetrp permite configurar o item selecionado do menu. Por exemplo, para deixar selecionado o fuso Pacific como padrão você deve fazer isto:

echo timezone_menu('UM8');

Por favor veja a refereência de fusos abaixo para ver os valores deste menu.

O segundo parâmetro permite configurar um class name de CSS para o menu.

Nota: O texto contido no menu pode ser encontrado no seguindo arquivo de idioma: language/<seu_idioma>/date_lang.php

Referência de Fuso-horário

A tabela a seguir mostra cada fuso com sua localização.

Fuso horário Localização
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