如何在Wordpress中保存MySQL时间戳列中的整数?

时间:2014-10-24 14:22:28

标签: php mysql wordpress timestamp

我在我的插件中为我的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 个答案:

答案 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)
   ...
));