Como fazer as datas de análise do strtotime no formato australiano (isto é, Reino Unido): dd / mm / aaaa?

Não acredito que nunca me deparei com essa antes.

Basicamente, estou analisando o texto em documentos de texto criados por humanos e um dos campos que preciso analisar é uma data e hora. Como estou na Austrália, as datas são formatadas comodd/mm/yyyy masstrtotime só deseja analisá-lo como uma data formatada nos EUA. Além disso, explodindo por/ não vai funcionar porque, como mencionei, esses documentos são digitados à mão e alguns deles assumem a forma ded M yy.

Eu tentei várias combinações desetlocale mas não importa o que eu tente, o idioma é sempre definido como inglês dos EUA.

Tenho certeza de que setlocale é a chave aqui, mas não consigo encontrar o código certo. Tentei estes:

auau-enen_AUAustráliaaus

Mais alguma coisa que eu possa tentar?

Para maior clareza: estou executando o IIS com uma caixa do Windows.

Muito obrigado :)

Iain

Exemplo:

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

Produz

2 September 2010 14:00

Eu quero que ele produza:

9 February 2010 14:00

Minha solução

Estou assinalando uma das respostas aqui, pois é uma solução muito mais fácil de ler, mas aqui está o que eu vim:

$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));

Como não posso confiar nos usuários para serem consistentes com a entrada de data, tornei minha regex um pouco mais complexa:

0 ou 1 dígito entre 0 e 31 dígito entre 0 e 9 - sim, isso corresponderá a 37 como uma data válida, mas acho que o regex já é grande o suficiente!Pode haver algum espaço em brancoCaractere delimitante (a '.', A '/' ou a '')Pode haver algum espaço em brancoOu:Um número entre 10 e 12 OUUm número entre 1 e 9 com um 0 inicial opcionalPode haver algum espaço em brancoCaractere delimitante (a '.', A '/' ou a '')Pode haver algum espaço em brancoOu:Um número com 2 dígitos de comprimento OUUm número de 4 dígitos

Espero que isso corresponda à maioria dos estilos de escrita de data ...

questionAnswers(6)

yourAnswerToTheQuestion