Ver Mensaje Individual
  #4 (permalink)  
Antiguo 26/12/2017, 05:09
paulkees
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: Formatear fechas de un idioma a otro

Hola xfxstudios y alvaro_trewhela, gracias por ayudarme...

Pongo como lo solucione, y explico lo que tendría que haber explicado antes.

La fecha en alemán la extraigo de la lectura linea por linea con "explode", y dentro de un "foreach", a un archivo txt que utiliza como separador "|"

Código PHP:
$lineas file('nombre_archivo_txt');
foreach (
$lineas as $linea_num => $linea)
{
    
$datos explode("|",$linea);
    
$traveldate_txt $datos[13]; //variable que contiene la fecha en alemán
    
        
if($traveldate_txt '0'){
            
$value $traveldate_txt;
            
$tempdate $value;
            
            
$tempdate str_replace(' Januar ''-01-'$tempdate);
            
$tempdate str_replace(' Februar ''-02-'$tempdate);
            
$tempdate str_replace(' Mär ''-03-'$tempdate);
            
$tempdate str_replace(' April ''-04-'$tempdate);
            
$tempdate str_replace(' Mai ''-05-'$tempdate);
            
$tempdate str_replace(' Juni ''-06-'$tempdate);
            
$tempdate str_replace(' Juli ''-07-'$tempdate);
            
$tempdate str_replace(' August ''-08-'$tempdate);
            
$tempdate str_replace(' September ''-09-'$tempdate);
            
$tempdate str_replace(' Oktober ''-10-'$tempdate);
            
$tempdate str_replace(' November ''-11-'$tempdate);
            
$tempdate str_replace(' Dezember ''-12-'$tempdate);
            
            
$tempdate = new DateTime($tempdate);
            echo 
$tempdate->format("Y-m-d");
        }

Curiosamente, y no se por que sucede, si no pongo el mes entero en alemán, me imprime siempre como año el actual (2017). Es decir, si la fecha en alemán es por ej. "29 Juni 1850", y yo en el "str_replace" pongo el mes abreviado "Jun", me imprime como año: 2017. En cambio, poniendo el mes de forma entera, ya sea que la fecha en alemán venga con el mes abreviado o no, siempre imprime el año correctamente.

A esta solución he llegado sacando un poco de aquí y de allá, y haciendo pruebas varias (ensayo - error). Tal vez hay una manera más facil y más correcta... pero bueno, es lo que pude lograr!!!

Gracias nuevamente a los dos por ayudarme!!!