将php文件中的unix时间戳存储到mysql中

时间:2011-07-25 13:55:49

标签: php mysql

现在我有了这段代码:

$mysqldate = date(time());

mysql_query("INSERT INTO permissions (date)
VALUES ('$mysqldate')");

在我插入之前我逃脱了,但我的问题是时间被存储为全0。我想知道mysql中的哪个列数据类型会存储类似的内容:

1311602030

一个unix时间戳,然后允许我按查询的最近日期排序。

4 个答案:

答案 0 :(得分:11)

如果数据库中的timestamp列是INTEGER类型,则可以执行

mysql_query("INSERT INTO permissions (date) VALUES ('".time()."')");

作为整数值,您还可以进行排序操作,并通过PHP中的date()函数将其转换回可读的日期/时间格式。 如果数据库中的timestamp列的类型为DATETIME,则可以执行

mysql_query("INSERT INTO permissions (date) VALUES ('".date('Y-m-d H:i:s')."')");

mysql_query("INSERT INTO permissions (date) VALUES (NOW())");

答案 1 :(得分:0)

尝试:

mysql_query("INSERT INTO permissions (date) VALUES ('".$mysqldate."')");

答案 2 :(得分:0)

date()函数需要一个字符串作为第一个参数,即格式。 time(),应该是第二个参数,如:date('Y-m -d H:i:s',time())。这将返回一个字符串,您可以将其与DATETIME列一起使用。除此之外,如果要存储unix时间戳,只需使用INT列。所以你可以直接存储time()的结果,而不需要调用date。 (或者,如前所述,使用date()格式化时间戳,使用有效的格式字符串并使用DATE,DATETIME或TIMESTAMP列)。请参阅:http://www.php.net/manual/en/function.date.phphttp://dev.mysql.com/doc/refman/5.1/en/datetime.html

编辑:你看到的是0,是不是因为mysql没有识别你用于列的格式(所以如果你使用的是DATE列,但你传递的格式错误,则无法识别,所以保存为0)

答案 3 :(得分:0)

尝试:

$mysqldate = date('Y-m-d H:i:s'); 
mysql_query("INSERT INTO permissions (date) VALUES ('$mysqldate')");