PHP mês de swap e dia em timestamp
Pergunta
Right. I foi a inserção de uma carga de dados em um banco de dados MySQL e usado o seguinte para gerar o carimbo do tempo:
$stamp = mktime($t[0], $t[1], $t[2], $d[2], $d[1], $d[0]);
Infelizmente, o dia eo mês foram misturados ao redor, e abaixo é a hora correta.
$stamp = mktime($t[0], $t[1], $t[2], $d[1], $d[2], $d[0]);
Trata-se 5.000 registros. Qual é a maneira mais fácil de fazer uma atualização em massa e correção?
Muito obrigado!
Solução
Será que o motor de banco de dados permitem que você inserir datas impossíveis, ou você não tem qualquer data com o campo Day> 12?
Em qualquer caso, você provavelmente pode corrigi-lo com uma instrução de atualização, mas a sintaxe é dependente do mecanismo de banco de dados que você usa.
Para o MySQL você usaria:
UPDATE myTable SET dateColumn = STR_TO_DATE(DATE_FORMAT(dateColumn, '%d-%c-%Y %T'), '%c-%d-%Y %T')
Outras dicas
Você não pode. A título de explicação, vou dar um exemplo:
Suponha que você queria dizer: Dia 13, mês 2, ano de 1990 Mas isso foi lido como: Dia 2, mês 13, ano de 1990 Uma vez que os meses em um ano só vão até 12, este seria tratado como: Dia 2, mês 1, Ano 1991
Mas suponha que você queria dizer: Dia 1, mês 2, ano 1991 Este teria sido lido como: Dia 2, mês 1, Ano 1991
Então, se você vê dia 2, mês 1, ano 1991 no banco de dados, que veio isso?
Isso é como dizer, eu quadrado um inteiro, e o resultado é 36. Que eu começar, -6 ou 6?