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!!!