Código PHP:
Ver original
<?php /** * Devuelve una fecha formateada a partir de otra fecha con formato. * Dado que esta función utiliza la classe DateTime (que no utiliza la configuración regional), * es necesario hacer una traducción de los posibles nombres de meses y dias. * @author repara2 [email protected] * @since 16/11/2011la fecha a convertir * @param string $originalFormat el formato de entrada de la fecha dada * @param string $outputFormat el formato deseado de salida * @return string $return, la fecha formateada o false en caso de error */ function date2date($date, $originalFormat, $outputFormat) { $newDate = DateTime::createFromFormat($originalFormat, $date); //Class DateTime no maneja configuración local, hay que hacer una traducción manual "January" => "Enero", "February" => "Febrero", "March" => "Marzo", "April" => "Abril", "May" => "Mayo", "June" => "Junio", "July" => "Julio", "August" => "Agosto", "September" => "Septiembre", "October" => "Octubre", "November" => "Noviembre", "December" => "Diciembre" ); //Class DateTime no maneja configuración local, hay que hacer una traducción manual "Monday" => "Lunes", "Tuesday" => "Martes", "Wednesday" => "Miércoles", "Thursday" => "Jueves", "Friday" => "Viernes", "Saturday" => "Sábado", "Sunday" => "Domingo" ); "Mon" => "Lunes", "Tue" => "Martes", "Wedn" => "Miércoles", "Thu" => "Jueves", "Fri" => "Viernes", "Sat" => "Sábado", "Sun" => "Domingo" ); $val = $newDate->format($outputFormat); foreach($months as $eng => $esp) { if($return!=$val) break; } foreach($days as $eng => $esp) { if($return!=$val) break; } foreach($days_full as $eng => $esp) { if($return!=$val) break; } return $return; } //Demo, algunas fechas y formatos: "10/12/2001" => "d/m/Y", "2001.12.10" => "Y.m.d", "December 10, 2001" => "F d, Y", "10-12-2001" => "d-m-Y" ); //Todas las fechas las voy a pasar a este formato $output = "D d, M Y"; //traducción foreach ($fechas as $date => $format) { echo "<h1>Antes: $date, ahora es: ".date2date($date, $format, $output)."</h1>"; } ?>