Mktime() - Timestamp tradicionais (ontem, mês passado, etc.)

Novembro 2016

A função mktime() retorna o timestamp Unix para uma data determinada, ou seja, o número de segundos entre 1° de janeiro de 1970 e a data em questão.
No entanto, em seu uso diário, geralmente é necessário definir dois timestamps para obter um período.

Note-se que para converter os timestamps abaixo em data MySQL data (DATETIME), basta usar a função da seguinte maneira:


<? 
$mysql_datetime = date('Y-m-d H:i:s',$timestamp); 
?>


Veja abaixo alguns exemplos para os mais tradicionais:


24 últimas horas


O código abaixo cobre as últimas 24 horas:
<?php 
$startTime = mktime() - 24*3600; 
$endTime = mktime(); 
?>

Ontem (yesterday)


O código abaixo funciona mesmo se estamos no primeiro dia do mês, ou no dia 1° de janeiro deste ano. Ele abrange o período de ontem às 0:00:00 até ontem às 23:59:59:

<?php 
$startTime = mktime(0, 0, 0, date('m'), date('d')-1, date('Y')); 
$endTime = mktime(23, 59, 59, date('m'), date('d')-1, date('Y')); 
?>

Esta semana (this week)


O código abaixo parte do princípio que o primeiro dia da semana é segunda-feira. Ele cobre o período indo da segunda feira à 00:00:00 até o dia de hoje:

<? 
$startTime = mktime(0, 0, 0, date('n'), date('j'), date('Y')) - ((date('N')-1)*3600*24); 
$endTime = mktime();  
?>

Semana passada (last week)


O código abaixo parte do princípio que o primeiro dia da semana é segunda-feira. Ele cobre o período indo da segunda feira, de há 15 dias, à 00:00:00 até o domingo seguinte às 23:59:59:

<? 
$startTime = mktime(0, 0, 0, date('n'), date('j')-6, date('Y')) - ((date('N'))*3600*24); 
$endTime = mktime(23, 59, 59, date('n'), date('j'), date('Y')) - ((date('N'))*3600*24); 
?>

Este mês (this month)


O código abaixo abrange o período do dia 1° do mês até o dia de hoje (mês em curso):

<? 
$startTime = mktime(0, 0, 0, date('m'), 1, date('Y')); 
$endTime = mktime(); 
?>

30 últimos dias (last 30 days)


O código abaixo abrange o período de há 30 dias ao dia de hoje:

<? 
$startTime = mktime() - 30*3600*24; 
$endTime = mktime(); 
?>

Mês passado (last month)


O código abaixo abrange o período do último mês:

<? 
$startTime = mktime(0, 0, 0, date('m')-1  , 1 , date('Y')); 
$endTime = mktime(23, 59, 59, date('m'), date('d')-date('j'), date('Y')); 
?>

Este ano (this year)


O código abaixo abrange o período indo do 1° de janeiro à 00:00:00 até o dia de hoje:

<? 
$startTime = mktime(0, 0, 0, 1, 1, date('Y')); 
$endTime = mktime(); 
?>

Ano passado (last year)


O código abaixo abrange o ano passado, do dia 1° de janeiro à 00:00:00 ao dia 31 de dezembro às 23:59:59 :
<? 
$startTime = mktime(0, 0, 0, 1 , 1, date('Y')-1); 
$endTime = mktime(23, 59, 59, 12, 31, date('Y')-1); 
?>



Tradução feita por Lucia Maurity y Nouira

Veja também :
Este documento, intitulado « Mktime() - Timestamp tradicionais (ontem, mês passado, etc.) »a partir de CCM (br.ccm.net) está disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições estipuladas pela licença, como esta nota aparece claramente.