我有这行代码:
<?= date('F dS, Y',$user_info['date_of_birth']) ?>
它获取每个用户的unix生日日期并在正常日期转换它。 唯一的问题是它会提前一天显示。 例如,数据库中的unix日期是1990年11月11日。 在视图中它将输出,1990年10月10日。 你知道如何解决这个问题吗?
提前致谢
答案 0 :(得分:0)
检查同步MySQL和PHP时区。看看这个类似的问题/答案:
答案 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控制台,请检查其时区设置。
还手动设置php defaulte timezone:
date_default_timezone_set('UTC');