在有人说出来之前,我检查过这样的其他问题,但无济于事。基本上,我从我的数据库中取出时间戳并显示它,这是检索的代码:
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。
任何帮助将不胜感激! :)
答案 0 :(得分:5)
你必须在单词timestamp
周围添加反引号,因为这是一个保留字。
"INSERT INTO mysql_table (`timestamp`) VALUES (now())";
答案 1 :(得分:1)
如果您要在PHP中进行日期格式化,那么只需从MySQL获取UNIX_TIMESTAMP,它可以直接用作PHP时间戳:
SELECT UNIX_TIMESTAMP(`timestamp`) FROM ...
你的date(... $row['timestamp'])
失败了,因为date()函数需要一个TIME VALUE,这只是一个unix时间戳 - 你传入一个日期的字符串表示,转换为0
,最有可能的,也就是1970年1月1日00:00,然后根据时区进行调整,所以你会得到Dec 30/69。
答案 2 :(得分:0)
问题是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-format