Foros del Web » Programando para Internet » PHP »

mostrar dateformat hora mes dia pero en espanol

Estas en el tema de mostrar dateformat hora mes dia pero en espanol en el foro de PHP en Foros del Web. lo que pasa es que estoy haciendo un libro de visitas para mi web pero el problema es que cuando alguien comenta me muestra la ...
  #1 (permalink)  
Antiguo 19/03/2009, 12:12
(Desactivado)
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 15 años, 10 meses
Puntos: 9
Sonrisa mostrar dateformat hora mes dia pero en espanol

lo que pasa es que estoy haciendo un libro de visitas para mi web
pero el problema es que cuando alguien comenta me muestra la fecha en ingles y la hora con 3 horas adelantadas quisiera que mostrara la hora de la pc pero no logro conseguirlo estuve mirando el codigo en

function.date.php

pero me sale nada mas en ingles aqui esta el codigo ayuda por fas

Código PHP:
var $dateFormat 'd-m-Y g:i:s A'
y aqui esta mi web para que chequen como lo muestra gracias...

Comentarios
  #2 (permalink)  
Antiguo 19/03/2009, 12:16
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: mostrar dateformat hora mes dia pero en espanol

setlocale()
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 19/03/2009, 12:21
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Respuesta: mostrar dateformat hora mes dia pero en espanol

Código PHP:
 if (!function_exists("fechaespanol")) {
function 
fechaespanol($fecha){ //yyyy-mm-dd
$diafecespanol=date("d"strtotime($fecha));
$diaespanol=date("N"strtotime($fecha));
$mesespanol=date("m"strtotime($fecha));
$anoespanol=date("Y"strtotime($fecha));
//Asignamos el nombre en español

// dia
    
if($diaespanol == "1"){ $diaespan="Lunes"; }
    if(
$diaespanol == "2"){ $diaespan="Martes"; }
    if(
$diaespanol == "3"){ $diaespan="Miercoles"; }
    if(
$diaespanol == "4"){ $diaespan="Jueves"; }
    if(
$diaespanol == "5"){ $diaespan="Viernes"; }
    if(
$diaespanol == "6"){ $diaespan="Sabado"; }
    if(
$diaespanol == "7"){ $diaespan="Domingo"; }
        
//mes
    
if($mesespanol == "1"){ $mesespan="Enero"; }
    if(
$mesespanol == "2"){ $mesespan="Febrero"; }
    if(
$mesespanol == "3"){ $mesespan="Marzo"; }
    if(
$mesespanol == "4"){ $mesespan="Abril"; }
    if(
$mesespanol == "5"){ $mesespan="Mayo"; }
    if(
$mesespanol == "6"){ $mesespan="Junio"; }
    if(
$mesespanol == "7"){ $mesespan="Julio"; }
    if(
$mesespanol == "8"){ $mesespan="Agosto"; }
    if(
$mesespanol == "9"){ $mesespan="Septiembre"; }
    if(
$mesespanol == "10"){ $mesespan="Octubre"; }
    if(
$mesespanol == "11"){ $mesespan="Noviembre"; }
    if(
$mesespanol == "12"){ $mesespan="Diciembre"; } 

//ano
    
$anoespanol=$anoespanol;
    
//Fecha
$fecha=$diaespan." ".$diafecespanol." de ".$mesespan." del ".$anoespanol;

return 
$fecha;
}


ejemplo de como usar la funcion:

Código PHP:

$fecha
="2009-05-15";
fechaespanol($fecha){ //yyyy-mm-dd 
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  #4 (permalink)  
Antiguo 19/03/2009, 12:42
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: mostrar dateformat hora mes dia pero en espanol

en un proyecto que hice en varios idiomas hice este método statico en una clase de fechas, ahora lo pongo como una función

Código :
Ver original
  1. function todayDateTime($monthname)
  2.     {
  3.         if(!empty($monthname))
  4.         {
  5.             if(is_array($monthname))
  6.             {
  7.                 if(array_key_exists(date("n"),$monthname))
  8.                 {
  9.                     return $monthname[date("n")] ."  ". date("d") .", " .date("Y"). "  ". date("H : m : s");
  10.                 }
  11.                 else
  12.                 {
  13.                     return 'Undefined' ."  ". date("d") .", " .date("Y"). "  ". date("H : m : s");
  14.                 }
  15.             }
  16.             else
  17.             {
  18.                 return 'Invalid' ."  ". date("d") .", " .date("Y"). "  ". date("H : m : s");
  19.             }
  20.         }
  21.         else
  22.         {
  23.             return date('F') ."  ". date("d") .", " .date("Y"). "  ". date("H : m : s");
  24.         }
  25.     }
ahora poque le paso como parámetro el $monthname? poque dependiendo del archivo de configuración de mi archivo lang seleccionado es lo que me mostraba el nombre del mes.
por ejemplo en mi archivo lang-es tenía esto:
Código :
Ver original
  1. //otras configuraciones
  2. $monthname[1] = "Enero";
  3. $monthname[2] = "Febrero";
  4. $monthname[3] = "Marzo";
  5. $monthname[4] = "Abril";
  6. $monthname[5] = "Mayo";
  7. $monthname[6] = "Junio";
  8. $monthname[7] = "Julio";
  9. $monthname[8] = "Agosto";
  10. $monthname[9] = "Septiembre";
  11. $monthname[10] = "Octubre";
  12. $monthname[11] = "Noviembre";
  13. $monthname[12] = "Diciembre";
tú lo puedes definir este array dentro de la misma función ya que sólo lo quieres en español, entonces ya no tendría ningún parámetro la función.

hago las diferentes comparaciones adentro porque necesitaba asegurarme de que la variable parámetro no esté vacío, sea un array y que exista el numero de mes, etc.

suerte
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #5 (permalink)  
Antiguo 19/03/2009, 19:23
(Desactivado)
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 15 años, 10 meses
Puntos: 9
Sonrisa Respuesta: mostrar dateformat hora mes dia pero en espanol

lo que pasa es que es para un libro de visitas mira aqui esta el codigo completo
pero no como aplicar todo el codigo que me diste para cambiarlo como le puedo hacer

Código PHP:
<?php
class maxGuestbook{
   var 
$messageDir 'messages';
   var 
$dateFormat 'd-m-Y g:i:s A';
   var 
$itemsPerPage 10;
   var 
$messageList;
   
function 
processGuestbook(){
   if (isset(
$_POST['submit'])) {
      
$this->insertMessage();
   }
   
$page = isset($_GET['page']) ? $_GET['page'] : 1;
   
   
$this->displayGuestbook($page);
}
   
function 
getMessageList(){
    
   
$this->messageList = array();
   
    
// Open the actual directory
    
if ($handle = @opendir($this->messageDir)) {
        
// Read all file from the actual directory
        
while ($file readdir($handle))  {
            if (!
is_dir($file)) {
               
$this->messageList[] = $file;
          }
        }
    }    
    
    
rsort($this->messageList);
    
    return 
$this->messageList;
}   

function 
displayGuestbook($page=1){
      
$list $this->getMessageList();
      
//echo "<center><a href='add.php'>Leave a message</a></center>";
      
echo "<table class='newsList'>";
      
      
//Get start point and end point
      
$startItem = ($page-1)*$this->itemsPerPage;
      if ((
$startItem $this->itemsPerPage) > sizeof($list)) $endItem sizeof($list);
      else 
$endItem $startItem $this->itemsPerPage
      
      for (
$i=$startItem;$i<$endItem;$i++){
         
//foreach ($list as $value) {
         
$value $list[$i];
          
$data file($this->messageDir.DIRECTORY_SEPARATOR.$value);
          
$name  trim($data[0]);
          
$email trim($data[1]);
         
$submitDate trim($data[2]);    
         unset (
$data['0']);
         unset (
$data['1']);
         unset (
$data['2']);
          
         
$content "";
         foreach (
$data as $value) {
               
$content .= $value;
         }
          
          echo 
"<tr><th align='left'><a href=\"mailto:$email\">$name</a></th>
                    <th class='right'>$submitDate</th></tr>"
;
          echo 
"<tr><td colspan='2'>".nl2br(htmlspecialchars($content))."<br/></td></tr>";
      }
      echo 
"</table>";
      if (
sizeof($list) == 0){
         echo 
"<center>No hay comentarios aun!</center>";
      }
      
// Create pagination
      
if (sizeof($list) > $this->itemsPerPage){
         echo 
"<div id=\"navigation\">";
         if (
$startItem == 0) {
            if (
$endItem sizeof($list)){
               echo 
"<div id=\"nright\"><a href=\"".$_SERVER['PHP_SELF']."?page=".($page+1)."\" >Next &raquo;</a></div>";
            } else {
               
// Nothing to display
            
}
         } else {
            if (
$endItem sizeof($list)){
               echo 
"<div id=\"nleft\"><a href=\"".$_SERVER['PHP_SELF']."?page=".($page-1)."\" >&laquo; Prev</a></div>";
               echo 
"<div id=\"nright\"><a href=\"".$_SERVER['PHP_SELF']."?page=".($page+1)."\" >Next &raquo;</a></div>";
            } else {
               echo 
"<div id=\"nleft\"><a href=\"".$_SERVER['PHP_SELF']."?page=".($page-1)."\" >&laquo; Prev</a></div>";
            }
         }
         
         echo 
"<br/></div><br/>";
      }
      echo 
"<hr />";
      
$this->displayAddForm();
}

function 
displayAddForm(){
?>
  #6 (permalink)  
Antiguo 19/03/2009, 19:45
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: mostrar dateformat hora mes dia pero en espanol

mmmm como te comenté la función era un método estático que realiza el proceso de datos, el array como sólo vas a querer en español puedes ponerlo dentro de la función y puedes agregarlo a tu clase (aunque lo recomendable sería crear una clase de manejo de fechas) como un método estático y llamarlo cuando lo necesites, ya que éste método te devolverá la fecha como lo quieres.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 03:27.