Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

NIKESLB

[Resolvido] Data em português

Recommended Posts

Boa noite,

Criei um sistema de notícias em PHP, e queria melhorá-lo em certos aspectos.

 

 <?php
mysql_connect("", "", "");
mysql_select_db("nome da base dados") or die(mysql_error());

// recuperamos as ultimas 10 news
$return = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT 0, 10');
while ($dados = mysql_fetch_array($return))
{
?>

         <div class="conteudo">
           <div class="dhtmlgoodies_question">
            <table border="0" width="100%">
            <tr>
            <td width="8%" align="left" ><img class="border" src="<?php echo $dados['img']; ?>" /></td>
            <td width="78%" align="center"><span class="texto_titulo_news"><?php echo $dados['titulo']; ?></span></td>
            <td width="14%" align="right"><em><?php echo date('d/m/Y \à\s\ H\hi', $dados['timestamp']); ?></em></td>
            </tr>
            </table>
           </div>
               <hr />       

          <div class="dhtmlgoodies_answer">
          <br />
            <div> <?php
   // Tirmaos os antislash e criamos entradas em HTML (<br />)
   $conteudo = nl2br(stripslashes($dados['conteudo']));
   echo $conteudo;
echo '<br /><br /><div align="left"><em>Fonte: </em><span class="textcolor">' . $dados['fonte'] . '</span></div> <div align="right"><em>News escrita por: </em><span class="textcolor">' . $dados['user'] . '</span></div>';
   ?>

           <br />
       <div ></div>
       </div>
       </div>
</div><br />
<br />
<?php
} // fim do cliclo das news
?>

 

Que dá este resultado:

Imagem Postada

 

E eu queria por a data em formato português, ou seja, pela vez de ter 12/03/2010 às 20h19 (como está referido na imagem), queria que fosse: Sexta 12 Março, às 20h19, continuando a usar o timestamp da base dados.

Além desse formato de data, queria que aparecesse também "Hoje" e "Ontem" na data, ou seja, se eu postar uma notícia hoje, pela vez de aparecer Sabádo 13 Março, às 20h19 aparece Hoje, às 20h19 e passando um dia torna-se Ontem , às 20h19 e passado outro Sabádo 13 Março, às 20h19.

 

Alguém me pode ajudar com isso por favor? :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado resultou, também consegui por "ontem" e "hoje":

(na imagem está a ultima data em inglês, mas alojado no servidor ficou em PT ^^)

Imagem Postada

 

Mas agora outro problema surgiu, pois eu tenho "às" entre o mês e a hora (como referido na imagem), mas nem sempre devia ser "às" porque se eu postar uma news entre 00h00 e 01h59 devia ser "à".

 

Como poderei fazer isso? sabendo que o meu cod da data ficou assim:

function date_2($time)
{
   $date_d = date('d');
   $date_objecto_d = date('d', $time);
   $date_m = date('m');
   $date_objecto_m = date('m', $time);
   $date_y = date('Y');
   $date_objecto_y = date('Y', $time);
    if($date_d == $date_objecto_d AND $date_m == $date_objecto_m AND $date_y == $date_objecto_y)
   {
       $date = strftime('Hoje às<br />%Hh%M', $time);
   }
   elseif($date_d == ($date_objecto_d + 1) AND $date_m == $date_objecto_m AND $date_y == $date_objecto_y)

   {
       $date = strftime('Ontem às<br />%Hh%M', $time);
   }
   else
   {
       setlocale(LC_TIME, 'pt_BR');
       $date = strftime(' %a %d %b<br />às %Hh%M', $time);
   }
return $date;

}

 

Alguém me pode ajudar com isso? por favor

Compartilhar este post


Link para o post
Compartilhar em outros sites

if(date('H', $time)<2) $as = "às"; else $as = "á";

$date = strftime('Hoje '.$as.'br />%Hh%M', $time);

 

 

Ah. aconselho deixar o setlocale no inicio do seu script. onde você chama suas funcoes e mysql, da forma que tu fez, ele só é setado se eu chamar essa função, o ideal é deixar acessivel já para todo o sistema.

 

O setlocale, serve tb para outras coisas e correções, como por exemplo R$, US$

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.