(PHP 4, PHP 5, PHP 7)
mktime — Obtém um timestamp Unix de uma data
$hour = date("H")
[, int $minute = date("i")
[, int $second = date("s")
[, int $month = date("n")
[, int $day = date("j")
[, int $year = date("Y")
[, int $is_dst = -1
]]]]]]] ) : intRetorna o timestamp Unix correspondente aos argumentos informados. Este timestamp é um inteiro longo contendo o número de segundos entre a Era Unix (January 1 1970 00:00:00 GMT), e o tempo especificado.
Argumentos podem ser omitidos da direita para esquerda; quaisquer argumentos omitidos serão definidos para o valor atual de acordo com a data e a hora local.
Nota:
A partir do PHP 5.1, chamar a função sem argumentos fará com que a função mktime() lance um aviso
E_STRICT: utilize a função time() em substistituição.
hour
O número da hora relativa ao início de determinado dia do
month, day e year.
Valores negativos referenciam a hora anterior a meia noite do dia em questão.
Valores maiores que 23 referenciam a hora correspondente no(s) próximo(s) dia(s).
minute
O número de minutos relativos ao início da hour.
Valores negativos referenciam minutos da hora anterior.
Valores maiores que 23 referenciam os minutos correspondentes a(s) próxima(s) horas(s).
second
O número de segundos relativos ao início do minute.
Valores negativos referenciam segundos do minuto anterior.
Valores maiores que 23 referenciam os segundos correspondentes ao(s) próximo(s) minuto(s).
monthO número do mês relativo ao fim do anterior. Valores de 1 a 12 referenciam o calendário normal de meses do ano em questão. Valores menores que 1 (valores negativos, inclusos) referenciam meses do ano anterior em ordem reversa, então 0 é Dezembro, -1 Novembro, e etc. Valores maiores que 12 referenciam meses correspondentes ao(s) próximo(s) ano(s).
dayO número do dia relativo ao final do mês anterior. Valores de 1 a 28, 29, 30 e 31 (dependendo do mês) corresponde a dias normais no mês. Valores menores que 1 (valores negativos, inclusos) corresponde a dias no mês anterior, então 0 é o último dia do mês anterior, -1 é o dia anterior a este, e etc. Valores maiores que o número de dias do mês, referenciam dias correspondentes ao(s) próximo(s) mês(es).
year
O número do ano. Pode conter dois ou quatro dígitos, com os valores
entre 0-69 significando 2000-2069 e 70-100 para 1970-2000. Em
sistemas aonde o time_t é um inteiro assinado de 32 bit, como é mais
comum, o alcance do ano é algo entre 1901 e
2038. Entretanto, antes do PHP 5.1.0 esse range era limitado para 1970
até 2038 em alguns sistemas (ex. Windows).
is_dst
Este parâmetro pode ser definido para 1 se está no horário de verão (DST),
0 se não está, ou -1 (o padrão) se não se sabe se a hora está dentro
do horário de verão ou não. Se é desconhecido, o PHP tentará compreender por si mesmo.
Isto pode causar resultados inesperados (mas não incorretos).
As vezes será inválido se DST estiver habilitado no sistema em que o PHP está executando ou
is_dst estiver definido para 1. Se DST estiver habilitado em e.g. 2:00, todos o período de tempo
entre 2:00 e 3:00 será inválido e a função mktime() retornará um valor indefinido
(normalmente negativo).
Alguns sistemas (e.g. Solaris 8) habilitam DST na meia-noite, então a hora
0:30 do dia, quando DST está habilitado, é interpretada como 23:30 do dia anterior.
Nota:
No PHP 5.1.0, este parâmetro tornou-se obsoleto. Como resultado, o novo recurso de manipulação de fuso horário deve ser usado em substituição.
Nota:
Este parâmetro foi removido no PHP 7.0.0.
A função mktime() retorna o timestamp Unix dos argumentos
informados.
Se os argumentos são inválidos, a função retornará FALSE (em versões anteriores ao PHP 5.1,
-1 era retornado).
Todas as chamadas a funções de data/hora gerarão um E_NOTICE
se o fuso horário não for válido, e/ou uma mensagem E_STRICT
ou E_WARNING
se utilizar as configurações do sistema ou a variável de ambiente
TZ. Veja também date_default_timezone_set()
| Versão | Descrição |
|---|---|
| 7.0.0 |
O parâmetro is_dst foi removido.
|
| 5.3.0 |
mktime() agora lançará um aviso E_DEPRECATED
se o parâmetro is_dst for utilizado.
|
| 5.1.0 |
O parâmetro is_dst tornou-se obsoleto.
Fazendo a função retornar FALSE em erro, em vez de
-1.
Reparada a função para aceitar ano, mês e dia passados
como zero.
|
| 5.1.0 |
Quando chamada sem argumentos, a função mktime() lançará um
aviso E_STRICT. Utilize a função
time() em substituição.
|
| 5.1.0 |
Agora lança erros |
Exemplo #1 Exemplo básico da função mktime()
<?php
// Configura o fuso horário a ser utilizado. Disponível desde o PHP 5.1
date_default_timezone_set('UTC');
// Imprime: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));
// Imprime algo como: 2006-04-05T01:02:03+00:00
echo date('c', mktime(1, 2, 3, 4, 5, 2006));
?>
Exemplo #2 Exemplo da mktime()
mktime() é útil para a aritmética e validação de data, já que calculará automaticamente o valor correto para a entrada fora do intervalo. Por exemplo, cada uma das seguintes linhas produzirá a string "Jan-01-1998".
<?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));
?>
Exemplo #3 Último dia do próximo mês
O último dia de um mês informado 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".
<?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);
?>
Em versões anteriores a PHP 5.1.0, timestamps negativos não eram suportados em nenhuma versão conhecida do Windows e em alguns outros sistemas também. Portanto o intervalo válido de anos foi limitado para 1970 até 2038.