Php日期从数据库信息中添加一天

时间:2016-07-05 02:37:33

标签: php date unix-timestamp

我有这行代码:

<?= date('F dS, Y',$user_info['date_of_birth']) ?>

它获取每个用户的unix生日日期并在正常日期转换它。 唯一的问题是它会提前一天显示。 例如,数据库中的unix日期是1990年11月11日。 在视图中它将输出,1990年10月10日。 你知道如何解决这个问题吗?

提前致谢

3 个答案:

答案 0 :(得分:0)

检查同步MySQL和PHP时区。看看这个类似的问题/答案:

Set timezone in PHP and MySQL

答案 1 :(得分:0)

要明确回答您的问题,您可以执行以下操作:

<?=date('F dS, Y',($user_info['date_of_birth'] + 86400))?>

其中86400是一天中的秒数。

但是,正如其他人所建议的那样,您可以并且应该将数据库和Php同步到UTC / GMT时间。

对于Php时区,请在脚本顶部执行以下操作:

date_default_timezone_set('UTC');

对于SQL,这取决于您正在使用的数据库(我不相信您指定了您正在使用的数据库)。

答案 2 :(得分:0)

可能是你服务器上的时间错了。您是否有访问它的shell,可以通过date命令检查它:

[centos@application ~]$ date
Tue Jul  5 04:17:00 UTC 2016

如果没有那么你可能会这样做:

define('TIMEZONE_OFFSET', 86400);
<?=date('F dS, Y',($user_info['date_of_birth'] + TIMEZONE_OFFSET))?>

再次,如果您有权访问mysql控制台,请检查其时区设置。

set-timezone-in-php-and-mysql

还手动设置php defaulte timezone:

date_default_timezone_set('UTC');