This document is for a version of CakePHP that is no longer supported. Please upgrade to a newer release!

Time

O helper Time faz o que o próprio nome se refere: poupa tempo. Ele permite o rápido processamento de informações relacionadas ao tempo. O helper Time pode desempenhar duas tarefas, principalmente:

  1. Pode formatar strings de tempo;

  2. Pode testar o tempo (mas não pode voltar no tempo, desculpe).

Formatando

fromString( $date_string )

fromStringrecebe uma string e usa strtotime para converter em um objeto data. Se a string passada for um número, irá converter em um inteiro que representam os segundos desde a Época Unix (01/01/1970 00:00:00 GMT). Passando a string «20081231» criará um resultado não desejado, pois ele irá converter isso como segundos passados da Época Unix, neste caso como «Fri, Aug 21st 1970, 06:07» (o formato pode variar dependendo das configurações de idioma do PHP).

toQuarter( $date_string, $range = false )

toQuarterirá retornar 1, 2, 3 ou 4, dependendo de qual trimestre do ano a data se refere. Se range for verdadeiro (true), um array com dois elementos será retornado, informando a data de início e término (no formato «2008-03-31») do trimestre.

toUnix( $date_string )

toUnix é a saída para fromString.

toAtom( $date_string )

toAtom retorna a data no formato Atom («2008-01-12T00:00:00Z»).

toRSS( $date_string )

toRSS retorna a data no formato RSS («Sat, 12 Jan 2008 00:00:00 -05:00»).

nice( $date_string = null )

nice recebe uma string e exibe no formato «Tue, Jan 1st 2008, 19:25».

niceShort( $date_string = null )

niceShort recebe uma string e exibe no formato «Jan 1st 2008, 19:25». Se o objeto data for hoje, o formato será «Today, 19:25». Se o objeto data for ontem, o formato será «Yesterday, 19:25».

daysAsSql( $begin, $end, $field_name )

daysAsSql retorna a string no format «($field_name >= “2008-01-21 00:00:00”) AND ($field_name <= “2008-01-25 23:59:59”)». Isto é útil se você precisa procurar registros entre duas datas (inclusive).

dayAsSql( $date_string, $field_name )

dayAsSql cria uma string num formato como daysAsSql, mas necessita de apenas um objeto de data.

timeAgoInWords( $date_string, $options = array(), $backwards = null )

timeAgoInWords irá receber uma string e converter numa forma amigavel, como «3 weeks, 3 days ago» (o texto virá sempre em inglês). Passando true em backwards você está declarando que o tempo está definido no futuro, usando o formato «on 31/12/08».

Opção

Descrição

format

O formato da data. O padrão é «on 31/12/08».

end

Determina o ponto de corte para utilizar palavras ao invés do formato de datas. O padrão é «+1 month».

relativeTime( $date_string, $format = “j/n/y” )

relativeTime é sinônimo de timeAgoInWords.

gmt( $date_string = null )

gmt retornará uma data em inteiro setada para Greenwich Mean Time (GMT).

format( $format = “d-m-Y”, $date_string)

format é a saída para a função date do PHP.

Função

Formato

nice

Tue, Jan 1st 2008, 19:25

niceShort

Jan 1st 2008, 19:25

Today, 19:25 Yesterday, 19:25

daysAsSql

($field_name >= “2008-01-21 00:00:00”) AND ($field_name <= “2008-01-25 23:59:59”)

dayAsSql

($field_name >= “2008-01-21 00:00:00”) AND ($field_name <= “2008-01-21 23:59:59”)

timeAgoInWords

relativeTime

on 21/01/08

3 months, 3 weeks, 2 days ago 7 minutes ago 2 seconds ago

gmt

1200787200

Testando o Time

  • isToday

  • isThisWeek

  • isThisMonth

  • isThisYear

  • wasYesterday

  • isTomorrow

  • wasWithinLast

Todas estas funções retornam true ou false quando recebem uma string de data. wasWithinLast recebe $time_interval como opção adicional:

$this->wasWithinLast( $time_interval, $date_string )

wasWithinLast recebe um intervalo de tempo numa string no formato como «3 months» e aceita o intervalo de tempo em segundos, minutos, horas, dias, semanas, meses e anos (no plural ou não, mas em inglês). Se o intervalo de tempo não for reconhecido (por exemplo, esteja mal formatado) ele usará o padrão que é dias.