PHP поменять месяц и день в метке времени - PullRequest
0 голосов
/ 21 сентября 2009

правый. Я вставлял загрузку данных в базу данных MySQL и использовал следующее для генерации метки времени:

$stamp = mktime($t[0], $t[1], $t[2], $d[2], $d[1], $d[0]);

К сожалению, день и месяц были смешаны, и ниже указана правильная временная метка.

$stamp = mktime($t[0], $t[1], $t[2], $d[1], $d[2], $d[0]);

Это около 5000 записей. Какой самый простой способ сделать массовое обновление и исправление?

Большое спасибо!

Ответы [ 2 ]

3 голосов
/ 21 сентября 2009

Позволяет ли ядро ​​базы данных вставлять невозможные даты или у вас не было даты с полем День> 12?

В любом случае вы, вероятно, можете исправить это одним оператором обновления, но синтаксис зависит от используемого вами механизма базы данных.

Для MySQL вы бы использовали:

UPDATE myTable SET dateColumn = STR_TO_DATE(DATE_FORMAT(dateColumn, '%d-%c-%Y %T'), '%c-%d-%Y %T')
2 голосов
/ 21 сентября 2009

Вы не можете. Для пояснения приведу пример:

Предположим, вы имели в виду: День 13, месяц 2, год 1990 Но это читалось как: День 2, месяц 13, год 1990 Поскольку количество месяцев в году увеличивается до 12, это будет рассматриваться как: День 2, месяц 1, год 1991

Но предположим, что вы имели в виду: День 1, месяц 2, год 1991 Это было бы прочитано как: День 2, месяц 1, год 1991

Итак, если вы видите день 2, месяц 1, год 1991 в базе данных, откуда он взялся?

Это все равно, что сказать, что я возведу в квадрат целое число, а результат равен 36. С чего я начал, -6 или 6?

...