Manual do PHP
Anterior |  | Próxima

# 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().

Anterior | Principal | Próxima
microtime | Acima | strftime