使用 PHP 格式化 SQL 时间戳
我有一个带有时间戳字段的mySQL数据库。当我测试时,它目前只有一个条目,它是
2010-02-20 13:14:09
我正在从数据库中提取并使用
echo date("m-d-Y",$r['newsDate'])
我的最终结果显示为
12-31-69
有人知道为什么吗?
编辑:编辑:忽略该编辑...记事本++的FTP插件超时,不幸的是,当它无法同步时不会显示错误。
我有一个带有时间戳字段的mySQL数据库。当我测试时,它目前只有一个条目,它是
2010-02-20 13:14:09
我正在从数据库中提取并使用
echo date("m-d-Y",$r['newsDate'])
我的最终结果显示为
12-31-69
有人知道为什么吗?
编辑:编辑:忽略该编辑...记事本++的FTP插件超时,不幸的是,当它无法同步时不会显示错误。
date
函数需要一个 UNIX 时间戳作为其第二个参数 - 这意味着您必须将从 DB 获得的日期转换为 UNIX 时间戳,这可以使用 strtotime
完成:
$db = '2010-02-20 13:14:09';
$timestamp = strtotime($db);
echo date("m-d-Y", $timestamp);
你会得到:
02-20-2010
您正在将字符串传递给函数 ;该字符串不是有效的 UNIX 时间戳。'2010-02-20 13:14:09'
date
'12-31-69
' 可能是 ,在您的区域设置中 ;并且是纪元 -- 对应于 0 UNIX 时间戳的日期。1970-01-01
1970-01-01
对于初学者来说,php 函数期望秒作为第二个变量。因此,这解释了为什么您的日期显示错误。请就此问题检查此来源。date()
然后为我们提供了问题的答案,为了让PHP从SQL时间戳正确格式化日期,我们只需更改查询一下...
SELECT author, `when`
将其更改为...
SELECT author, UNIX_TIMESTAMP(`when`)
然后使用 PHP 日期函数,其中包含存储上述 SQL 查询结果的变量。