Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Script PHP que mostra a quanto tempo atrás aconteceu com timestamp

10-05-2015 21:33

É comum ver em alguns sites as seguintes frases:

- A tantos segundos atrás;
- A tantos minutos atrás;
- A tantos dias atrás;
- A tantos meses atrás;
- A tantos anos atrás;


Esse script pega a data atual e faz uma comparação com uma data já gravada no formato timestamp para ver quanto tempo já se passou.

Se você tem armazenado determinada data no formato timestamp, basta você usar a seguinte função que vou postar nesse post para obter mostrar essas frases.

<?php // CORREÇÃO DA DATA DO SERVIDOR // SE VOCÊ TIVER UM FUSO-HORÁRIO DIFERENTE, VEJA ESSE LINK // http://www.codigosnaweb.com/forum/Como-corrigir-o-problema-do-fuso-horario-do-servidor_1_8976.html date_default_timezone_set('America/Sao_Paulo'); function passou($timestamp) { $passou = ''; $segundo = time() - $timestamp; $minuto = (int)($segundo / 60); $hora = (int)($minuto / 60); $dia = (int)($hora / 24); $meses = (int)($dia / 30); $ano = (int)($dia / 365); if ($ano >= 1) { $passou = 'há ' .$ano . ' ano' . ($ano != 1 ? '(s)' : ''); } else if ($meses >= 1) { $passou = 'há ' .$meses . ' mes' . ($ano != 1 ? '(es)' : ''); } else if ($dia >= 1) { $passou = 'há ' .$dia . ' dia' . ($dia != 1 ? '(s)' : ''); } else if ($hora >= 1) { $how_log_ago = $hora . ' hora' . ($hora != 1 ? '(s)' : ''); } else if ($minuto >= 1) { $passou = 'há ' .$minuto . ' minuto' . ($minuto != 1 ? '(s)' : ''); } else { $passou = 'há ' .$segundos . ' ha segundo' . ($segundos != 1 ? '(s)' : ''); } return $passou; } echo passou("1420070400"); ?>

2
A melhor hospedagem para o seu site HostGator!
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Script PHP que mostra a quanto tempo atrás aconteceu com timestamp

21-01-2016 20:11

Estou postando uma outra versão desse script.
Essa nova versão é melhor porque você pode definir na função a data padrão para saber quanto tempo se passou desde aquela data definida.
Exemplo da data: 13-12-2015 17:32

<?php function get_time_ago($time_stamp) { $time_difference = strtotime('now') - $time_stamp; if ($time_difference >= 60 * 60 * 24 * 365.242199) { /* * 60 seconds/minute * 60 minutes/hour * 24 hours/day * 365.242199 days/year * This means that the time difference is 1 year or more */ return get_time_ago_string($time_stamp, 60 * 60 * 24 * 365.242199, 'ano'); } elseif ($time_difference >= 60 * 60 * 24 * 30.4368499) { /* * 60 seconds/minute * 60 minutes/hour * 24 hours/day * 30.4368499 days/month * This means that the time difference is 1 month or more */ return get_time_ago_string($time_stamp, 60 * 60 * 24 * 30.4368499, 'mês'); } elseif ($time_difference >= 60 * 60 * 24 * 7) { /* * 60 seconds/minute * 60 minutes/hour * 24 hours/day * 7 days/week * This means that the time difference is 1 week or more */ return get_time_ago_string($time_stamp, 60 * 60 * 24 * 7, 'semana'); } elseif ($time_difference >= 60 * 60 * 24) { /* * 60 seconds/minute * 60 minutes/hour * 24 hours/day * This means that the time difference is 1 day or more */ return get_time_ago_string($time_stamp, 60 * 60 * 24, 'dia'); } elseif ($time_difference >= 60 * 60) { /* * 60 seconds/minute * 60 minutes/hour * This means that the time difference is 1 hour or more */ return get_time_ago_string($time_stamp, 60 * 60, 'hora'); } else { /* * 60 seconds/minute * This means that the time difference is a matter of minutes */ return get_time_ago_string($time_stamp, 60, 'minuto'); } } function get_time_ago_string($time_stamp, $divisor, $time_unit) { $time_difference = strtotime("now") - $time_stamp; $time_units = floor($time_difference / $divisor); settype($time_units, 'string'); if ($time_units === '0') { return 'menos de 1 ' . $time_unit . ' atras'; } elseif ($time_units === '1') { return '1 ' . $time_unit . ' atras'; } else { /* * More than "1" $time_unit. This is the "plural" message. */ // TODO: This pluralizes the time unit, which is done by adding "s" at the end; this will not work for i18n! return $time_units . ' ' . $time_unit . 's atras'; } } echo get_time_ago(strtotime('13-12-2015 17:32')); ?>

Fonte http://stackoverflow.com/questions/2915 ... -date-time
1
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado