我有这行代码:PHP的日期添加一天内,从数据库中的信息
<?= date('F dS, Y',$user_info['date_of_birth']) ?>
它得到每个用户的UNIX的生日日期,并将其转换在一个正常的日期。 唯一的问题是它会提前一天显示。 例如,数据库中的unix日期是1990年5月11日。 在视图中,它将输出,1990年5月10日。 您知道如何解决此问题吗?
在此先感谢
我有这行代码:PHP的日期添加一天内,从数据库中的信息
<?= date('F dS, Y',$user_info['date_of_birth']) ?>
它得到每个用户的UNIX的生日日期,并将其转换在一个正常的日期。 唯一的问题是它会提前一天显示。 例如,数据库中的unix日期是1990年5月11日。 在视图中,它将输出,1990年5月10日。 您知道如何解决此问题吗?
在此先感谢
要明确地回答你的问题,你可以做到以下几点:
<?=date('F dS, Y',($user_info['date_of_birth'] + 86400))?>
其中86400是秒在一天的数量。
但是,正如其他人所建议的那样,您可以并且应该将数据库和Php同步到UTC/GMT时间。
对于PHP时区,执行你的脚本的顶部以下内容:
date_default_timezone_set('UTC');
对于SQL,这取决于你正在使用的数据库(我不相信你指定你正在使用的数据库)。
谢谢,完美的作品。我现在会看看时区! –
检入同步您的MySQL和PHP时区。看看这个类似的问题/回答:
这可能是你在服务器上的时间错误。是你accesse它外壳可以通过date
命令来检查:
[[email protected] ~]$ date
Tue Jul 5 04:17:00 UTC 2016
,如果没有,那么你很可能将不得不这样做:如果你有机会到MySQL控制台检查
define('TIMEZONE_OFFSET', 86400);
<?=date('F dS, Y',($user_info['date_of_birth'] + TIMEZONE_OFFSET))?>
再次它的时区设置。
也可手动设置PHP defaulte时区:
date_default_timezone_set('UTC');
我想看看时区问题。 – chris85
这也许是问题所在。你知道我可以在上面的代码行中添加一天吗? –
不要这样做。解决问题,以便您的时区相匹配。 – chris85