PHP Cambiar idioma de fecha

Iniciado por tomasvreal28, 6 Diciembre 2015, 23:31 PM

0 Miembros y 1 Visitante están viendo este tema.

tomasvreal28

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 (php) [Seleccionar]

<?php 
  
date_default_timezone_set
('America/Lima'); 
  
$calendario_meses = array(1=>"Enero",2=>"Febrero",3=>"Marzo",4=>"Abril",5=>"Mayo",6=>"Junio"
7=>"Julio",8=>"Agosto",9=>"Septiembre",10=>"Octubre"
11=>"Noviembre",12=>"Diciembre"); 
  
?>

 
// Esta es la manera como extraigo de la BD

<?php 
    $data 
explode('-'$res['icr_fecha_revision2']); 
    echo 
date('F \d\e\l Y'strtotime($data[0] . '-' $data[1])); ?>
 
</td>

#!drvy

CitarEstoy 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 (php,2,5) [Seleccionar]
date_default_timezone_set('America/Lima');
setlocale(LC_ALL,'es_ES');

$data = explode('-', $res['icr_fecha_revision2']);
$fecha = strftime('%B del %Y', strtotime($data[0] . '-' . $data[1]));

echo $fecha;
// 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 (php,21) [Seleccionar]
date_default_timezone_set('America/Lima');

$calendario_meses = array(
   'January'=>'Enero',
   'Febuary'=>'Febrero',
   'March'=>'Marzo',
   'April'=>'Abril',
   'May'=>'Mayo',
   'June'=>'Junio',
   'July'=>'Julio',
   'August'=>'Agosto',
   'September'=>'Septiembre',
   'October'=>'Octubre',
   'November'=>'Noviembre',
   'December'=>'Diciembre'
);


$data = explode('-', $res['icr_fecha_revision2']);
$fecha = date('F \d\e\l Y', strtotime($data[0] . '-' . $data[1]));
$fecha = strtr($fecha, $calendario_meses);

echo $fecha;
// 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

tomasvreal28

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






Cita de: #!drvy en  6 Diciembre 2015, 23:57 PM
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 (php,2,5) [Seleccionar]
date_default_timezone_set('America/Lima');
setlocale(LC_ALL,'es_ES');

$data = explode('-', $res['icr_fecha_revision2']);
$fecha = strftime('%B del %Y', strtotime($data[0] . '-' . $data[1]));

echo $fecha;
// 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 (php,21) [Seleccionar]
date_default_timezone_set('America/Lima');

$calendario_meses = array(
    'January'=>'Enero',
    'Febuary'=>'Febrero',
    'March'=>'Marzo',
    'April'=>'Abril',
    'May'=>'Mayo',
    'June'=>'Junio',
    'July'=>'Julio',
    'August'=>'Agosto',
    'September'=>'Septiembre',
    'October'=>'Octubre',
    'November'=>'Noviembre',
    'December'=>'Diciembre'
);


$data = explode('-', $res['icr_fecha_revision2']);
$fecha = date('F \d\e\l Y', strtotime($data[0] . '-' . $data[1]));
$fecha = strtr($fecha, $calendario_meses);

echo $fecha;
// 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