(PHP 4, PHP 5, PHP 7, PHP 8)
mktime — Obtém um timestamp Unix de uma data
$hour
,$minute
= null
,$second
= null
,$month
= null
,$day
= null
,$year
= null
Retorna 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.
Quaisquer argumentos opcionais
omitidos ou null
serão definidos para os valores correntes de acordo
com a data e horário locais.
Favor notar que os argumentos estão em uma ordem não usual:
month
, day
,
year
, e não na ordem mais razoável
year
, month
,
day
.
Chamar mktime() sem argumentos não é suportado, e irá resultar em um ArgumentCountError. time() pode ser usada para obter o timestamp atual.
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).
month
O 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).
day
O 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 faixa de valores para year
é algo entre 1901 e 2038.
A função mktime() retorna o timestamp Unix dos argumentos
informados ou false
se o timestamp não couber em um inteiro do PHP.
Versão | Descrição |
---|---|
8.0.0 |
O parâmetro hour não é mais opcional. Se for necessário um timestamp
Unix, use a função time().
|
8.0.0 |
minute , second , month ,
day e year agora podem ser nulos.
|
Exemplo #1 Exemplo básico da função mktime()
<?php
// Configura o fuso horário padrão a ser utilizado.
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 'Último dia em Fev-2000 é: ', date('d', $lastday);
$lastday = mktime(0, 0, 0, 4, -31, 2000);
echo 'Último dia em Fev-2000 é: ', date('d', $lastday);
?>