Gostaria de tratar a data/hora de uma postagem.
Por exemplo se postou menos de 1 hora fica.
Há 30min
Há 40min
etc..
Se postou depois de 1 hora.
fica:
Há 1h
Há 2h
etc...
Se passar de 24 horas
:fica
Há 1 dia
Há 2 dias
etc..
class Data {
public static function ExibirTempoDecorrido($date)
{
if(empty($date))
{
return "Informe a data";
}
$periodos = array("segundo", "minuto", "hora", "dia", "semana", "mês", "ano", "década");
$duracao = array("60","60","24","7","4.35","12","10");
$agora = time();
$unix_data = strtotime($date);
// check validity of date
if(empty($unix_data))
{
return "Bad date";
}
// is it future date or past date
if($agora > $unix_data)
{
$diferenca = $agora - $unix_data;
$tempo = "atrás";
}
else
{
$diferenca = $unix_data - $agora;
$tempo = "agora";
}
for($j = 0; $diferenca >= $duracao[$j] && $j < count($duracao)-1; $j++)
{
$diferenca /= $duracao[$j];
}
$diferenca = round($diferenca);
if($diferenca != 1)
{
$periodos[$j].= "s";
}
return "$diferenca $periodos[$j] {$tempo}";
}
}
Funciona redondinho se o valor retornado for de algumas horas, mas...
Quando passa de dois meses, ele retorna a palavra mess. Deve ser por conta dessa linha
if($diferenca != 1)
{
$periodos[$j].= "s";
}
Seguinte,
Eu tenho uma página de atualização de lista de faixas que estão agrupados por álbum, com os dados vindo através de parâmetros na url como o albumID e detalhes e são retornados dentro de um while.
O que eu queria é que ele atualizasse todos os campos que fossem editados se eles fossem modificados, mas o que o ocorre é que apenas o último registro é atualizado.
E este é o código que uso pra fazer o UPDATE no banco de dados:
<?php
require_once "../db/albuns.php";
if(isset($_POST['update'])){
$trackNumero = $_POST['trackNumero'];
$trackTitulo = mysqli_real_escape_string($conecta2, $_POST['trackTitulo']);
$trackTraducao = $_POST['trackTraducao'];
$trackID = $_POST['trackID'];
$albumID = $_POST['albumID'];
$sqlUpdate = "UPDATE `faixas` SET `trackTitulo` = '$trackTitulo', `trackNumero` = '$trackNumero', `trackTraducao` = '$trackTraducao' WHERE `albumID` = $albumID AND `trackID` = $trackID";
if($atualizaDados = mysqli_query($conecta2, $sqlUpdate) == true){
var_dump($sqlUpdate);
//header("location: ../../albuns.php?update=sucesso");
} else {
//header("location: ../../albuns.php?update=erro");
}
}
?>
Como eu faria para que cada linha fosse atualizada individualmente? Já tentei diversos métodos, mas o resultado continua sendo a atualização apenas do último registro no banco, ignorando o restante das atualizações.