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

Php date add one day from database information

我有这行代码:

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

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

提前致谢

检查同步您的 MySQL 和 PHP 时区。看看这个类似的 question/answer:

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

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

其中 86400 是一天中的秒数。


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

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

date_default_timezone_set('UTC');

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

可能是你服务器上的时间有误。您是否可以访问它 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默认时区:

date_default_timezone_set('UTC');