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