微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – Yii2将UTC时间保存为数据库,但显示在其他时区

是否有一种简单的方法来保存日期和以UTC为单位的时间,但在显示日期和时间以将其转换为特定时区时?我已经添加

'formatter'  => [
    'class' => 'yii\i18n\Formatter',
    'timeZone'        => 'America/New York',
],

对于我的配置,但现在所有内容都保存在数据库中的EST时区中.我希望数据库始终是UTC,并且可以控制在打印时间和时间时显示的时区.在PHP中约会.

基本上我希望格式化程序有一个单独的设置来控制进入数据库的格式,另一个设置来控制格式以便显示(因为用户可以在不同的时区).

解决方法:

你使用的是Yii还是Yii2?

对于Yii2,首先为您的应用程序设置时区,例如:

$config = [
    'timeZone' => 'Europe/London',
    // other config goes here
];

比每次使用PHP日期功能日期都会自动在此时区转换.请注意,strtotime始终使用UTC时间返回秒数,这是常见错误.

将日期保存到数据库时,您可以使用formatter以UTC时间获取日期,例如:

$model->date = Yii::$app->formatter->asTime('2014-10-06 14:41:00 UTC');

输出时区只使用PHP日期函数时,没有时区的格式化程序,您将获得在配置文件中设置的时区日期.例如:

echo date("d. M. Y.", $your_date);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐