Erros em programas PHP causados por datas incorretas podem ser caros. De acordo com a International Data Corp , as empresas gastaram mais de $ 20 bilhões manuseio data de fixação de programas de computador , em antecipação da transição Y2K . Datas incorretas podem causar programas PHP para travar ou fazer cálculos incorretos , que são , por vezes, pior do que falhas do programa . Existem vários métodos disponíveis que você pode usar para converter uma data formatada incorretamente para uma data formatada corretamente em um script PHP. Instruções
1
Identificar o formato da data incorreta . Insira depuração de código em seu script para a saída o conteúdo do campo com a data incorreta . Entenda por que o formato é incorreto para que você possa convertê-lo em uma data correta e tomar medidas para evitar erros semelhantes no futuro. Por exemplo, insira o seguinte código no seu script PHP onde o campo data incorreta é referenciado :
echo " *** debug: date = $ date_field ***" ;
2
Identificar datas representadas por um valor inteiro como o número de segundos desde 1 de janeiro de 1970 - por exemplo , data de um banco de dados Microsoft Access. Use a função de PHP " data " para converter valores inteiros para um valor de data que pode ser processado pelo script PHP. Por exemplo, insira o seguinte script em seu programa para converter uma data para um valor inteiro "MM /DD /AAAA " data :
$ good_date = date (" d /m /Y ", $ access_date );
3
Use a função PHP " strtotime ", em conjunto com a função PHP "date" para converter um formato de data incorreta para uma data formatada corretamente . Passe a data incorreta para a função strtotime para criar um valor de tempo e, então, usar a função "date" para formatar corretamente o valor do tempo. Por exemplo, digite :
$ fixed_time = strtotime ( $ bad_date ); $ new_date = date (" Ym -d ", $ fixed_time );
4
Use a função substring para reordenar o mês eo dia partes de uma string data em que são transpostas. Por exemplo, para converter " 14/10/2011 " para " 10/14/2011 ", use o seguinte código:
$ new_date = substr ( $ bad_date , 3,2). '/'. substr ( $ bad_date , 0,2) . '/'. substr ( $ bad_date , 6);