Forum und email

mktime

(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".

Example#1 mktime() exemplo

<?php
echo date("M-d-Y"mktime(00012321997));
echo 
date("M-d-Y"mktime(0001311997));
echo 
date("M-d-Y"mktime(000111998));
echo 
date("M-d-Y"mktime(0001198));
?>
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).

Nota: 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".

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