我在我的插件中为我的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,
...
));
任何人都知道造成错误的原因是什么?
答案 0 :(得分:2)
当您执行insert not integer格式时,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)
...
));