mktime

(PHP 3, PHP 4 )

mktime -- Obtém um modelo UNIX para uma data

Descrição

int mktime ( int hour, int minute, int second, int month, int day, int year [, int is_dst])

Atenção: Note a estranha ordem dos argumentos, que diferem da ordem dos argumentos em um chamada regular da UNIX mktime() e que não combina bem com si mesma para a omissão dos parâmetros da direita para a esquerda (veja abaixo). é um erro comum misturar estes valores acima em um script.

Retorna o timestamp Unix correspondente para os argumentos dados. Este timestamp é um longo inteiro contendo o número de segundos entre a Era Unix (January 1 1970) e o tempo especificado.

Argumentos podem ser omitidos da direita para esquerda; quaisquer argumentos assim omitidos serão definidos para o valor atual de acordo com a data e a hora local.

is_dst pode ser definido para 1 se está durante o horário de verão, 0 se não estiver, ou -1 (o padrão) se não se sabe se está em horário de verão ou não. Se é desconhecido, o PHP tenta calcular. Isto pode causar resultados inesperados (mas não incorretos).

Nota: is_dst adicionado no 3.0.10.

mktime() é útil para fazer data aritimética e validação, ela calculará automaticamente o valor correto para um receptor fora de linha. Por exemplo, cada uma das seguintes linhas produz a string "Jan-01-1998".

Exemplo 1. mktime() exemplo

echo date ("M-d-Y", mktime (0,0,0,12,32,1997));
echo date ("M-d-Y", mktime (0,0,0,13,1,1997));
echo date ("M-d-Y", mktime (0,0,0,1,1,1998));
echo date ("M-d-Y", mktime (0,0,0,1,1,98));
Year pode ser com 2 ou 4 dígitos, com valores entre 0-69 mapeando para 2000-2069 e 70-99 para 1970-1999 (em sistemas onde time_t é um inteiro marcado de 32bit, como a maioria de hoje, uma linha válida Year é qualquer coisa entre 1902 e 2037).

O último dia de qualquer mês pode ser expresso como o dia "0" do próximo mês, não o dia -1. Os seguintes exemplos produzirão a string "The last day in Feb 2000 is: 29".

Exemplo 2. Ultimo dia do próximo mês

$lastday = mktime (0,0,0,3,0,2000);
echo strftime ("Last day in Feb 2000 is: %d", $lastday);
     
$lastday = mktime (0,0,0,4,-31,2000);
echo strftime ("Last day in Feb 2000 is: %d", $lastday);

Data com ano, mês e dia igual a zero é considerado ilegal (senão ele é considerado como 30.11.1999, que poderia ser um comportamento estranho).

Veja também date() e time().