Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: tomasvreal28 en 6 Diciembre 2015, 23:31 pm



Título: PHP Cambiar idioma de fecha
Publicado por: tomasvreal28 en 6 Diciembre 2015, 23:31 pm
Hola a todos
Espero que me puedan ayudar
Tengo un campo en la bd Fecha que esta en cadena y le convertido como Fecha

Pero a la hora de Listarlo
Como yo quiero es por ejemplo Diciembre del 2015
Me sale en ingles December del 2015

Estoy tratando de hacerlo con un array pero no me funciona



Código
  1. <?php
  2.  
  3. date_default_timezone_set('America/Lima');
  4.  
  5. $calendario_meses = array(1=>"Enero",2=>"Febrero",3=>"Marzo",4=>"Abril",5=>"Mayo",6=>"Junio",
  6. 7=>"Julio",8=>"Agosto",9=>"Septiembre",10=>"Octubre",
  7. 11=>"Noviembre",12=>"Diciembre");
  8.  
  9. ?>
  10.  
  11. // Esta es la manera como extraigo de la BD
  12.  
  13. <?php
  14.    $data = explode('-', $res['icr_fecha_revision2']);
  15.    echo date('F \d\e\l Y', strtotime($data[0] . '-' . $data[1])); ?>  
  16. </td>
  17.  


Título: Re: PHP Cambiar idioma de fecha
Publicado por: #!drvy en 6 Diciembre 2015, 23:57 pm
Citar
Estoy tratando de hacerlo con un array pero no me funciona

No veo que hagas nada con ese array  :-\

Hay varias formas pero depende de si el SO del servidor lo soporta. Una forma es simplemente decirle a PHP que use el locale español.

Esto seria:

Código
  1. date_default_timezone_set('America/Lima');
  2. setlocale(LC_ALL,'es_ES');
  3.  
  4. $data = explode('-', $res['icr_fecha_revision2']);
  5. $fecha = strftime('%B del %Y', strtotime($data[0] . '-' . $data[1]));
  6.  
  7. echo $fecha;
  8. // Diciembre del 2015

Pero puede que el SO donde se va alojar el script no soporte ese idioma. En tal caso no te queda mas remedio que cambiar los meses a español por tu cuenta.

que seria algo así:

Código
  1. date_default_timezone_set('America/Lima');
  2.  
  3. $calendario_meses = array(
  4.    'January'=>'Enero',
  5.    'Febuary'=>'Febrero',
  6.    'March'=>'Marzo',
  7.    'April'=>'Abril',
  8.    'May'=>'Mayo',
  9.    'June'=>'Junio',
  10.    'July'=>'Julio',
  11.    'August'=>'Agosto',
  12.    'September'=>'Septiembre',
  13.    'October'=>'Octubre',
  14.    'November'=>'Noviembre',
  15.    'December'=>'Diciembre'
  16. );
  17.  
  18.  
  19. $data = explode('-', $res['icr_fecha_revision2']);
  20. $fecha = date('F \d\e\l Y', strtotime($data[0] . '-' . $data[1]));
  21. $fecha = strtr($fecha, $calendario_meses);
  22.  
  23. echo $fecha;
  24. // Diciembre del 2015

Ahí simplemente estarías reemplazando los meses en ingles por español. Ten cuidado, no uses los dos a la vez pues si de repente php devuelve los meses en español y tu aun así los reemplazas, "Mayo" por ejemplo se convertiría en "Mayoo".

Saludos


Título: Re: PHP Cambiar idioma de fecha
Publicado por: tomasvreal28 en 8 Diciembre 2015, 01:21 am
Amigo con el array funciona perfecto
pero una cuando tengo el campo vacio en la BD

este me devuelve con fecha de diciembre del 1969
cuando debería aparecerme en blanco como puedo hacer que solo aparezca los que tienen fechas y los que están con campos vacíos en blanco






No veo que hagas nada con ese array  :-\

Hay varias formas pero depende de si el SO del servidor lo soporta. Una forma es simplemente decirle a PHP que use el locale español.

Esto seria:

Código
  1. date_default_timezone_set('America/Lima');
  2. setlocale(LC_ALL,'es_ES');
  3.  
  4. $data = explode('-', $res['icr_fecha_revision2']);
  5. $fecha = strftime('%B del %Y', strtotime($data[0] . '-' . $data[1]));
  6.  
  7. echo $fecha;
  8. // Diciembre del 2015

Pero puede que el SO donde se va alojar el script no soporte ese idioma. En tal caso no te queda mas remedio que cambiar los meses a español por tu cuenta.

que seria algo así:

Código
  1. date_default_timezone_set('America/Lima');
  2.  
  3. $calendario_meses = array(
  4.    'January'=>'Enero',
  5.    'Febuary'=>'Febrero',
  6.    'March'=>'Marzo',
  7.    'April'=>'Abril',
  8.    'May'=>'Mayo',
  9.    'June'=>'Junio',
  10.    'July'=>'Julio',
  11.    'August'=>'Agosto',
  12.    'September'=>'Septiembre',
  13.    'October'=>'Octubre',
  14.    'November'=>'Noviembre',
  15.    'December'=>'Diciembre'
  16. );
  17.  
  18.  
  19. $data = explode('-', $res['icr_fecha_revision2']);
  20. $fecha = date('F \d\e\l Y', strtotime($data[0] . '-' . $data[1]));
  21. $fecha = strtr($fecha, $calendario_meses);
  22.  
  23. echo $fecha;
  24. // Diciembre del 2015

Ahí simplemente estarías reemplazando los meses en ingles por español. Ten cuidado, no uses los dos a la vez pues si de repente php devuelve los meses en español y tu aun así los reemplazas, "Mayo" por ejemplo se convertiría en "Mayoo".

Saludos