Função date

Antes de começar a falar da função date(), vamos entender a diferença entre um formato de data legível pelos humanos e o unix timestamp. Convencionamos ao longo dos anos que determinados formatos de representação sugerem um determinado instante ou um dia, um mês, um ano. No entanto, esses formatos são de difícil tratamento, uma vez que obedece a uma estrutura complexa com meses com diferente número de dias, anos com mais ou menos um dia, etc…

Surgiu, assim a necessidade de simplificar a representação de datas, para podermos tratá-las informaticamente. O mais famoso é o Unix timestamp, vulgarmente chamado apenas timestamp. É um número com a contagem dos segundos desde o dia 1 de Janeiro de 1970 às 00:00:00 sendo este o timestamp 0. Assim se subtrairmos o timestamp de ontem as 2:00:00 ao de hoje as 2:00:00, iremos obter o número de segundos que passaram entre os dois instantes, neste caso 86400 (1 dia).

Funções que retornam timestamp

Time() - Esta função não recebe parâmetros pois retorna apenas o número de segundos desde a Era Unix (January 1 1970 00:00:00 GMT) até o instante atual.
Ex: <?php echo time();?>
Resultado: 1516362513



mktime ( $hora, $minuto, $segundo, $mes, $dia, $ano ) - Retorna o número de segundos entre a Era Unix (January 1 1970 00:00:00 GMT) e o instante especificado.
Ex: <?php echo mktime(20, 03, 58, 02, 09, 1993);?>
Resultado: 728535838

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.
Parâmetros
$hora - o número da hora.
$minuto - o número do minuto.
$segundo - o número de segundos passados do minuto.
$mes - o número do mês.
$dia - número do dia.
$ano - 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).


Strtotime ( $string ) - Essa função recebe uma string ($string) representando uma data em ingles e retorna o timestamp dela.
Ex: <?php echo strtotime("+2 day");?> Resultado: 1516535313
Ex: <?php echo strtotime("now");?> Resultado: 1516362513 Obs: equivalente a Time()
Ex: <?php echo strtotime("last Sunday");?> Resultado: 1515913200
Ex: <?php echo strtotime("next Sunday");?> Resultado: 1516518000
Ex: <?php $timestp=strtotime("now"); echo strtotime("+2 day" , $timestp);?> Resultado: 1516535313
Ex: <?php $timestp=strtotime("2013/01/04"); echo strtotime("-2 day" , $timestp);?> Resultado: 1357110000

A função “date” é, em essência, uma função que retorna uma data de acordo com o timestamp usado. Esta função é o "inverso" da função “strtotime” já que permite converter um timestamp em um formato de data.

Ex 1: <?php echo date('d')?>    resultado:19
Ex 2: <?php $data_mysql = '2010-04-11 07:04:28';
$timestamp = strtotime($data_mysql);
echo date('d/m/Y h:i', $timestamp);?>
resultado:    11/04/2010 07:04