Как сохранить целое число в столбце метки времени MySQL в WordPress?

Я создал таблицу для моей базы данных 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,
...
));

Кто-нибудь знает, что является причиной ошибки?

1

Решение

MySQL ожидает, что временные метки будут в Y-m-d H:i:s формат, когда вы делаете вставку не целочисленный формат. то есть. 2014-10-24 23:23:34

Вы можете сделать преобразование из int в формат даты и времени с помощью:

date('Y-m-d H:i:s', 1401110159)

В твоем случае:

$wpdb->insert($table_name, array(
...
"date" => date('Y-m-d H:i:s', $my_date_integer_variable)
...
));
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]