在有人说之前,我检查了其他类似的问题,但没有结果。基本上,我从数据库中获取时间戳并显示它,下面是检索代码:
while($row = mysql_fetch_array($result)) {
$timestamp = date("l F d Y", strtotime($row['timestamp']));
}
这是提交时的代码:
$sql = "INSERT INTO mysql_table (timestamp) VALUES (now())";
我以为这是一个简单的格式错误(因此是strtotime(,但正如你所看到的,这并没有奏效:http://aviatex14.co.uk/anonpost/index.php
我可以将其更改为:
$date = date("l F d Y", $row['timestamp']);
1969年12月31日,但那也不太好。。
哦,我的列数据类型是datetime。
如有任何帮助,我们将不胜感激!:(
您必须在单词timestamp
周围加上backticks,因为这是一个保留单词。
"INSERT INTO mysql_table (`timestamp`) VALUES (now())";
如果你要用PHP进行日期格式化,那么只需从MySQL中获取一个UNIX_TIMESTAMP,它可以直接用作PHP时间戳:
SELECT UNIX_TIMESTAMP(`timestamp`) FROM ...
您的date(... $row['timestamp'])
失败是因为date((函数需要一个TIME VALUE,它只是一个unix时间戳-您传入的是日期的字符串表示,它被转换为0
,很可能是1970年1月1日00:00,然后根据时区进行调整,所以您得到的是1969年12月31日。
问题是php使用UNIX_TIMESTAMP,这与MySQL的日期时间格式不匹配。
要么做
SELECT date_format(`timestamp`,aformatstring, see link) as formateddate_as_string
或者做
SELECT UNIX_TIMESTAMP(`timestamp`) as php_friendly_timestamp
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-格式化