Я создал таблицу для моего WordPress базы данных в мой плагин с:Как сохранить целое число в столбце timestamp MySQL в Wordpress?
global $wpdb;
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
global $charset_collate;
$table_name = $wpdb->prefix .'tablename';
$sql="CREATE TABLE ".$table_name." (
...
date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP(),
...
) $charset_collate;
";
dbDelta($sql);
Это прекрасно работает. Но когда я пытаюсь сохранить целочисленные значения, представляющие дату, которую она сохраняет «0000-00-00 00:00:00», за исключением одного случая, это сохраняет правильную дату: «2014-01-11 01:59:00». Но все целочисленные значения являются допустимыми датами времени (int (1401110159), int (1400525576), int (1400510041), ...). Вот код, который я пытаюсь вставить в свои строки:
$wpdb->$table_name=$table_name;
$wpdb->insert($table_name, array(
...
"date" => $my_date_integer_variable,
...
));
Кто-нибудь знает, что вызывает ошибку?
Вам нужно преобразовать даты ввода в формат 'Ym: d H: i: s', используя объект' strtodate() 'или' Datetime' в PHP –
Привет, это уже целое число. Но, я думаю, wordpress преобразует его в строку или что-то в этом роде. Но одно значение сохраняется как правильная дата. Это не имеет никакого смысла для меня. На самом деле путают: D – user2718671
Столбец «timestamp» сохраняет значение как целое ** внутри **, но ** отображает ** обратно к вам как «Y-m-d H: i: s'. Этот столбец полезен, потому что он всегда UTC - упрощает его смещение с информацией о часовом поясе. Когда вы вставляете в столбец «timestamp», он хочет форматировать значение так же, как оно показывает его обратно, что означает «Y-m-d H: i: s'. Как отметили другие ребята, вы делаете это, форматируя дату должным образом. Если вы хотите вставить текущее время в «timestamp», вы можете выдать 'INSERT INTO your_ts_table SET ts_column = NOW();' (последняя функция MySQL). –