mktime

(PHP 3, PHP 4 , PHP 5)

mktime -- Obtém um timestamp Unix para uma data

Descrição

int mktime ( [int hora [, int minuto [, int second [, int mes [, int dia [, int ano [, int is_dst]]]]]]] )

Atenção: Note a estranha ordem dos argumentos, que diferem da ordem dos argumentos em uma chamada regular da UNIX mktime() e que não combina bem omitir os 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 PHP 3.0.10.

mktime() é útil durante a aritmética e validação de data, enquanto ela calculará automaticamente o valor correto para a entrada out-of-range. Por exemplo, cada uma das seguintes linhas produzirá a string "Jan-01-1998".

Exemplo 1. mktime() exemplo

<?php
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));
?>
Ano 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 Ano é qualquer coisa entre 1901 e 2038).

Windows: Timestamp Negativos não são suportados dentro de uma versão conhecida de Windows. Portanto a faixa de anos válidos inclui apenas 1970 a 2038.

O último dia de um mês dado pode ser expressado como o dia "0" do mês seguinte, não o dia -1. Os dois exemplos seguintes produzirão a string "The last day in Feb 2000 is: 29".

Exemplo 2. Último dia do próximo mês

<?php
$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 (de outra forma ele é considerado como 30.11.1999, que poderia ser um comportamento estranho).

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