现在我有了这段代码:
$mysqldate = date(time());
mysql_query("INSERT INTO permissions (date)
VALUES ('$mysqldate')");
在我插入之前我逃脱了,但我的问题是时间被存储为全0。我想知道mysql中的哪个列数据类型会存储类似的内容:
1311602030
一个unix时间戳,然后允许我按查询的最近日期排序。
答案 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.php和http://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')");