¿Cómo hacer las fechas de análisis de tiempo de tiempo en formato australiano (es decir, Reino Unido): dd / mm / aaaa?

No puedo creer que nunca me haya encontrado con este antes.

Básicamente, estoy analizando el texto en documentos de texto creados por humanos y uno de los campos que necesito analizar es una fecha y hora. Como estoy en Australia, las fechas están formateadas comodd/mm/yyyy perostrtotime solo quiere analizarlo como una fecha con formato de EE. UU. Además, explotando por/ no va a funcionar porque, como mencioné, estos documentos están escritos a mano y algunos toman la forma ded M yy.

He intentado múltiples combinaciones desetlocale pero no importa lo que intente, el idioma siempre está configurado para inglés de EE. UU.

Estoy bastante seguro de que setlocale es la clave aquí, pero parece que no puedo encontrar el código correcto. Probé estos:

auau-enen_AUAustraliaaus

¿Algo más que pueda probar?

Para mayor claridad: estoy ejecutando IIS con un cuadro de Windows.

Muchas gracias :)

Iain

Ejemplo:

$mydatetime = strtotime("9/02/10 2.00PM");
echo date('j F Y H:i', $mydatetime);

Produce

2 September 2010 14:00

Quiero que produzca:

9 February 2010 14:00

Mi solución

Estoy dando una marca a una de las respuestas aquí, ya que es una solución mucho más fácil de leer para la mía, pero esto es lo que se me ocurrió:

$DateTime = "9/02/10 2.00PM";
$USDateTime = preg_replace('%([0-3]?[0-9]{1})\s*?[\./ ]\s*?((?:1[0-2])|0?[0-9])\s*?[./ ]\s*?(\d{4}|\d{2})%', '${2}/${1}/${3}', $DateTime);  
echo date('j F Y H:i',strtotime($USDateTime));

Debido a que no puedo confiar en que los usuarios sean consistentes con su entrada de fecha, he hecho que mi expresión regular sea un poco más compleja:

0 o 1 dígito entre 0 y 31 dígito entre 0 y 9: sí, esto coincidirá con 37 como una fecha válida, pero creo que la expresión regular ya es lo suficientemente grande.Podría ser un espacio en blancoCarácter delimitador (un '.', Un '/' o un '')Podría ser un espacio en blancoYa sea:Un número entre 10 y 12 OUn número entre 1 y 9 con un 0 inicial opcionalPodría ser un espacio en blancoCarácter delimitador (un '.', Un '/' o un '')Podría ser un espacio en blancoYa sea:Un número de 2 dígitos de largo OUn número de 4 dígitos de largo

Esperemos que esto coincida con la mayoría de los estilos de escritura de fechas ...

Respuestas a la pregunta(6)

Su respuesta a la pregunta