gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:43:39 24 4
gpt4 key购买 nike

有没有一种简单的方法可以在 UTC 中保存日期和时间,但在显示日期和时间时将它们转换为特定时区?我已经添加了

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

到我的配置,但现在所有内容都保存为数据库中的 EST 时区。我希望数据库始终为 UTC,并且可以控制在 php 中打印时间和日期时显示的时区。

基本上我希望 formatter 有一个单独的设置来控制进入数据库的格式和另一个设置来控制用于显示目的的格式(因为用户可以在不同的时区)。

最佳答案

您使用的是 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);

关于php - Yii2 将时间保存为 UTC 到数据库,但显示在其他时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39935681/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com