现在我有这样的代码:店unix时间戳到MySQL
$mysqldate = date(time());
mysql_query("INSERT INTO permissions (date)
VALUES ('$mysqldate')");
我逃跑之前,我还插入,但我的问题是,岁月不饶人存储为全0。我想知道什么列数据类型在MySQL将存储是这样的:
1311602030
Unix时间戳,然后将适当允许我通过查询最近的日期排序。
现在我有这样的代码:店unix时间戳到MySQL
$mysqldate = date(time());
mysql_query("INSERT INTO permissions (date)
VALUES ('$mysqldate')");
我逃跑之前,我还插入,但我的问题是,岁月不饶人存储为全0。我想知道什么列数据类型在MySQL将存储是这样的:
1311602030
Unix时间戳,然后将适当允许我通过查询最近的日期排序。
如果在数据库中timestamp列的类型是INTEGER,你可以做
mysql_query("INSERT INTO permissions (date) VALUES ('".time()."')");
作为整数值,您还可以执行排序操作并将其通过date()
函数从PHP转换回可读的日期/时间格式。 如果在数据库中的时间戳列的类型是DATETIME,你可以做
mysql_query("INSERT INTO permissions (date) VALUES ('".date('Y-m-d H:i:s')."')");
或
mysql_query("INSERT INTO permissions (date) VALUES (NOW())");
尝试:
mysql_query("INSERT INTO permissions (date) VALUES ('".$mysqldate."')");
日期()函数需要一个字符串作为第一参数,它是格式。 time()应该是第二个参数,如:date('Y-m-d H:i:s',time())。这将返回一个字符串,您可以使用DATETIME列。除此之外,如果你想存储一个unix时间戳,只需使用一个INT列。所以你可以直接存储time()的结果,而不需要调用日期。 (或者,正如我之前所说的,使用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并没有recognice时使用的列的格式(因此,如果您正在使用DATE列,但你传递了错误的格式,它不是recogniced,所以0被保存)
尝试:
$mysqldate = date('Y-m-d H:i:s');
mysql_query("INSERT INTO permissions (date) VALUES ('$mysqldate')");
任何理由,你为什么不想使用MySQL时间戳? – Jacob
“日期”列的数据类型是什么?您正试图插入一个整数。此外,我强烈建议使用DATETIME或TIMESTAMP列而不是存储整数。您可以使用MySQL函数NOW()将当前时间插入到DATETIME/TIMESTAMP列中。 – TehShrike