-
Conteúdo Similar
-
Por daemon
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..
-
Por daemon
Preciso mostrar o intervalo em horas e minutos entre 2 registros.
Por exemplo, tenho um campo data e hora que postei um conteudo (exemplo : 15:00).
E tenho a hora atual (16:30).
Preciso imprimir a quanto tempo foi postado.
No caso volta aparecendo "30 minutos". se passar de 1 hora "1h e 5min" etc.. etc...
-
Por clovis.sardinha
Boa noite.
Tenho um bd com 2 tabelas. A primeira (serv_os) tem as colunas id, fk_os e fk_servico a segunda (prod_os) tem as colunas id, fk_os e agora eu criei a coluna fk_serv. A coluna fk_serv vai ser preenchida com o valor id da primeira coluna. Fiz o seguinte update entre as tabelas:
UPDATE prod_os
JOIN serv_os ON serv_os.fk_os= prod_os.fk_os
SET prod_os.fk_serv = serv_os.id
WHERE prod_os.fk_os=serv_os.fk_os;
Até aqui tudo bem, porém, fiquei com o seguinte problema. Muitas vezes existem vários serviços na primeira tabela, por exemplo id=100 produto A, id=101 produto B, porém o fk_os é o mesmo . Ai na coluna fk_serv aparece sempre o id do produto A. Nesse caso duas vezes. O produto B, C,...etc não aparece.
Não consegui nenhum comando, já que o join é pela coluna fk_os, que fizesse o update mudar o ponteiro para o serviço B,C,etc.
Se alguém puder me ajudar eu agradeço.
-
Por ILR master
Fala pessoal.
Tudo bem?
Tenho o seguinte código que funcionda perfeitamente:
date_default_timezone_set("America/Sao_Paulo");
$d_inicio= date('Y-m-d');
$d_final= date('Y-m-d', strtotime('+30 day'));
Mas eu quero definir a quantidade de dias pegando o valor que a variável:
date_default_timezone_set("America/Sao_Paulo");
$tempo = 30;
$d_inicio= date('Y-m-d');
$d_final= date('Y-m-d', strtotime('+$tempo day'));
Mas quando declaro com variável não funciona.
Obrigado pela ajuda.
-
Por ILR master
Fala galera, tudo bem?
Tenho o seguinte codigo:
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";
}
Quero que modre:
2 meses atrás
e não
2 mess atrás.
Espero que tenham entendido.
Valeu
-