Foros del Web » Programando para Internet » PHP »

setlocate en español no funca

Estas en el tema de setlocate en español no funca en el foro de PHP en Foros del Web. buenas: quiero que en mi blog la fecha salga en español para eso intento usar este código Código PHP: $fecha = $rows [ 'fecha' ];  ...
  #1 (permalink)  
Antiguo 13/11/2007, 13:41
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
setlocate en español no funca

buenas:
quiero que en mi blog la fecha salga en español para eso intento usar este código
Código PHP:
$fecha=$rows['fecha']; 
setlocale(LC_TIME"sp");
echo 
strftime('%A %e de %B del %Y - %H:%M hs'strtotime($fecha)); 
para que salga algo asi lunes 7 de noviembre del 2007 pero en vez de eso me sale esto:
Wednesday 7 de Nov del 2007

como puedo hacer para que salga como yo quiero?

desde ya muchas gracias
  #2 (permalink)  
Antiguo 13/11/2007, 14:01
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Re: setlocate en español no funca

hola, y es asi? por que me parece que es:
Código PHP:
$fecha=$rows['fecha'];  
setlocale(LC_TIME"esp"); 
echo 
strftime('%A %e de %B del %Y - %H:%M hs'strtotime($fecha)); 
de todas formas a mi me pasa algo parecido, por que tengo una funcion que muestra la fecha en español y en el localhost me funciona bien, pero en el server, nop , a lo mejor el que esta mal soy yo....

saludos y suerte
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #3 (permalink)  
Antiguo 13/11/2007, 15:56
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
Re: setlocate en español no funca

nop, no funciona alguien sabe bien como es el tema.

desde ya muchas gracias
  #4 (permalink)  
Antiguo 13/11/2007, 16:15
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 16 años, 11 meses
Puntos: 6
Re: setlocate en español no funca

$fecha=$rows['fecha'];
setlocale(LC_TIME, 'sp-Sp', 'es-Es', 'es', 'sp');
echo strftime('%A %e de %B del %Y - %H:%M hs', strtotime($fecha));


Hola prueblalo así a ver si te sirve.

salu2
__________________
"Eres grande por que caminas entre gigantes"
  #5 (permalink)  
Antiguo 13/11/2007, 18:17
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
Re: setlocate en español no funca

tampoco me lo toma sigue saliendo en ingles :s
  #6 (permalink)  
Antiguo 13/11/2007, 22:54
 
Fecha de Ingreso: octubre-2006
Mensajes: 173
Antigüedad: 17 años, 6 meses
Puntos: 3
Re: setlocate en español no funca

Hola. esto es lo que uso y me funciona bien. prueba quizas te funcione.
esta encerrada en color Blanco pero ahi cambia.

Código PHP:
<?php
function fecha()

 
setlocale(LC_TIME'spanish');
print 
"<strong style='color: #FFFFFF;'>".strftime("%A  %#d de %B del %Y")."</strong>";
}
fecha();
?>
__________________
¨
  #7 (permalink)  
Antiguo 16/11/2007, 14:15
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
Re: setlocate en español no funca

pero como le paso el valor de la base de datos a la funcion que me decis?
  #8 (permalink)  
Antiguo 16/11/2007, 14:37
Avatar de josefferhn  
Fecha de Ingreso: agosto-2007
Ubicación: Tegucigalpa, Fco Morazan
Mensajes: 27
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: setlocate en español no funca

Hola, este codigo te tiene ke funcionar facilmente:


<?php

$Fecha_ = "2007-08-25";

setlocale(LC_TIME,'SP');
$NombreDia_Es = strftime('%A',strtotime($Fecha_));

echo ucfirst($NombreDia_Es);

?>
  #9 (permalink)  
Antiguo 17/11/2007, 10:21
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
Re: setlocate en español no funca

tampoco funca lo puse asi:
Código PHP:
<? $fech=$row['fecha'];
     
setlocale(LC_TIME,'SP');
     
$fecha=strftime('%a %e de %b del %Y - %H:%M hs',strtotime($fech));
    echo 
ucfirst($fecha); 
?>
podes verlo en www.sastrevalls.com.ar me sigue mostrando la fecha en ingles
  #10 (permalink)  
Antiguo 17/11/2007, 12:28
Avatar de guasa  
Fecha de Ingreso: octubre-2007
Mensajes: 9
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: setlocate en español no funca

Código PHP:
 <? $fech=$row['fecha'];
   
setlocale(LC_TIME,'SP');
     
$fecha=strftime('%a %e de %b del %Y - %H:%M hs',strtotime($fech));
    echo 
ucfirst($fecha); 
?>
pon esto, cambia SP por es_ES

Código PHP:
 <? $fech=$row['fecha'];
   
setlocale(LC_TIME,'es_ES');
     
$fecha=strftime('%a %e de %b del %Y - %H:%M hs',strtotime($fech));
    echo 
ucfirst($fecha); 
?>
  #11 (permalink)  
Antiguo 17/11/2007, 12:35
Avatar de guasa  
Fecha de Ingreso: octubre-2007
Mensajes: 9
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: setlocate en español no funca

Si quieres unicamente que te salga la fecha actual en español pon esto

Código PHP:
<?php  // Establecer la constante global LC_TIME a español
  // NOTA: Esto se establece globalmente para PHP, si éste está
  // cargado como Módulo en vez de CGI. Esto es, desde que se establece
  // hasta que se cierra PHP, no hasta que termina el script.
  
setlocale(LC_TIME'es_ES');
 
  
// Es un poco diferente a la función Date() pero los argumentos son los mismos
  
echo strftime('%A, %d de %B de %Y');
  echo 
"<br>";
                    
?>
  #12 (permalink)  
Antiguo 18/11/2007, 17:39
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
Re: setlocate en español no funca

guasa:
lo que quiero es que la fecha que tengo en la base de datos me salga en español y no lo hace nisiquiera como me indicaste en el post anterior, ya nose si es problema del script o del servidor
  #13 (permalink)  
Antiguo 19/11/2007, 05:30
Avatar de guasa  
Fecha de Ingreso: octubre-2007
Mensajes: 9
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: setlocate en español no funca

Desde aqui te presento como visualizar las noticias de una base de datos.
Cuatro campos id, fecha, titular y cuerpo de noticia
desde un formulario se hace una busqueda y ese valor se pasa a este código a traves de la variable busca_noticia que la recoge en $datos_actividad
Código PHP:
<?php
    
include("conex.phtml");/*desde este archivo conecto a la base de datos*/
    
$link=Conectarse();
    
$datos_actividad=$_GET['busca_noticia'];
    
/*$datos_empresa=$_GET['busca_empresa'];*/
    
$result=mysql_query("select * from noticias where titular like '%".$datos_actividad."%'  order by fecha desc,Id",$link) ;/* aqui hago la consulta seleccionando los campos de la tabla noticias y los ordeno por fecha descendiente*/
?>
Código PHP:
<?php    
     

    
    
while ($registro mysql_fetch_array($result)) { // comienza un bucle que leera todos los registros y ejecutara las ordenes que siguen
     
     
$fecha=$registro['fecha'];/*incluyo todas las fechas en la variable $fecha*/
     
setlocale(LC_CTYPE'es');
     
setlocale (LC_TIME,"spanish");
     echo 
'<font size=2 color=#f9ba05><b>';
     echo 
str_replace ("De","de",ucwords(strftime("%d de %B de %Y"mktime(substr($fecha,11,2),substr($fecha,14,2),substr($fecha,17,2),    substr($fecha,5,2),substr($fecha,8,2),substr($fecha,0,4)))));/* esto me transforma la fecha al formato español y la presenta*/
     
echo '</b></font color>';
     echo 
'<br>';
   
    echo 
'<font size=3 color=#0B4674><b>';/* presenta el siguiente campo que es el titular*/
    
echo  $registro['titular'] . ' '// imprime el titular
    
echo '</b></font color><br>';
    
    echo 
'<font size=2><b>Redacción:</b><DIV align=justify>';
    echo 
$registro['cuerpo'] . ' '// imprime la noticia
    
echo '</div></font><br>';
    echo 
'<img src=imagenes/barra_separadora.gif ><br><br>';
// fin del bucle de ordenes

mysql_free_result($result); // libera los registros de la tabla

mysql_close($link); // cierra la conexion con la base de datos

?>

Última edición por guasa; 19/11/2007 a las 05:41
  #14 (permalink)  
Antiguo 21/11/2007, 17:20
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
Re: setlocate en español no funca

hola guasa:
intente usar lo que me pasaste, pero no me funciona me muestra cualquier fecha.
Me podrias explicar porque usas este codigo:

str_replace ("De","de",ucwords(strftime("%d de %B de %Y", mktime(substr($fecha,11,2),substr($fecha,14,2),sub str($fecha,17,2), substr($fecha,5,2),substr($fecha,8,2),substr($fech a,0,4)))))

no lo entiendo muy bien su finalidad.

salu2
  #15 (permalink)  
Antiguo 22/11/2007, 05:16
Avatar de guasa  
Fecha de Ingreso: octubre-2007
Mensajes: 9
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: setlocate en español no funca

str_replace -- Sustitiye todas las apariciones de una cadena en otra
ucwords -- Pone en mayúsculas el primer carácter de cada palabra de una cadena
strftime -- Dar formato a una hora/fecha local de acuerdo a valores de localidad
mktime -- Obtener la marca de tiempo Unix de una fecha
esto último lo puedes ver más específico en http://www.php-es.com/function.mktime.html. Devuelve la marca de tiempo Unix que corresponde a los argumentos dados. Esta marca de tiempo es un entero largo que contiene el número de segundos entre el Epoch Unix (Enero 1 1970 00:00:00 GMT) y la hora especificada.
substr -- Devuelve parte de una cadena

Por lo tanto lo que estamos diciendo es lo siguiente
la cadena esta en formato anglosajón
en la base de datos se supone que aparece asi
2007-11-22 es decir 22 de noviembre de 2007
primero pedimos que se reemplace la cadena dada de cada registro encontrado según el valor que le hemos dado ha la variable $result con la función str_replace . Con ucwords ponemos la primera letra de cada palabra en mayusculas.
Seguidamente le damos formato local con strftime, yo le he dado unicamente dia mes y año con "%d de %B de %Y",.
Ahora saco con mktime un número entero que me da la cantidad de segundos que hay desde 1 de enero de 1970 y de esa cadena saco los valores que corresponden al dia mes año horas y minutos
int mktime ( [int hora [, int minuto [, int segundo [, int mes [, int dia [, int anyo [, int es_dst]]]]]]] )
hora es entoces lo que tengo en la variable $fecha que se me ha convertido en un numero entero y cojo desde la posición 11 de ese número 2 caracteres y asi sucesivamente
desde la posicion 14 dos caracteres
desde la posicion 17 dos caracteres
desde la posicion 5 dos caracteres
desde la posicion 8 dos caracteres
desde la posicion 0 cuatro caracteres
esto me ha dado los valores de la fecha guardada y la represento asi "%d de %B de %Y",. para ti faltaria ponerle las horas y los minutos %H y %M

Última edición por guasa; 22/11/2007 a las 05:46
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




La zona horaria es GMT -6. Ahora son las 07:10.