如何使用date()在PHP中将时间戳转换为日期而不扭曲数据?

时间:2013-12-17 23:58:21

标签: php mysql date datetime timestamp

我使用php函数date()来获取时间戳并将其转换为可读日期。它存储在type = timestamp,function = now in mysql中,我正在使用的时间戳在数据库中显示为“2013-12-17 16:23:00”。并且它可以使用$ date1完美地回应。但是,当我尝试使用此代码转换它时: echo date('m/d/Y, $date1) 它在页面上变成“12/31/1969”。我不明白为什么。

2 个答案:

答案 0 :(得分:1)

要转换MySQL时间戳,您需要使用strtotime函数

date('m/d/Y', strtotime($date1));

函数strtotime将采用必须的日期/时间戳格式并将其转换为unix时间戳,然后可以使用date()将其转换为另一种可读格式。参考:http://php.net/strtotime

上述工作,但并不是说这是最好的方式,我很乐意听到替代方案。

您获得的日期是因为date()需要一个unix时间戳(自1970年1月1日以来已经过去的秒数),并且我假设您的Web服务器配置为UTC-,所以你'重新获得前一天。这是一个令人烦恼的错误,可能来自MySQL处理时间戳的方式。

答案 1 :(得分:0)

您必须使用strtotime函数才能获得正确的日期格式

打印日期('m / d / Y',strtotime($ date1))

希望它有助于您的需求