如何在XCRUD中将接收到的数据的时区更改为AET?

时间:2019-04-04 01:32:24

标签: php

我已经使用XCRUD从数据库中检索数据,但是我遇到了时区问题。

public static $db_time_zone = '+10:00';

我尝试设置默认时区     date_default_timezone_set('澳大利亚/布里斯班');

我在XCRUD文档中没有找到其他答案来支持这是否正确?

我需要将数据库中的时区设置为UTC,但是在页面上显示数据期间,我需要将时区更改为AET。

1 个答案:

答案 0 :(得分:1)

有点晚了,但是希望如果您还没有弄清楚的话会有所帮助。

xcrud库将使用服务器的默认时区(xcrud.php @第16行)。如果您想要的服务器时区是UTC,则您不应更改任何内容。

要显示具有所需时区的日期值,只需对xcrud的functions.php使用回调即可。

$xcrud->column_callback('date_field', 'display_aet_timezone');

对于您的回调函数:

/**
 * Callback to display the time in AET timezone
 */
function display_aet_timezone($value, $fieldname, $primary_key, $row, $xcrud)
{
    $dt = new DateTime();
    $dt->setTimezone(new DateTimeZone('Australia/Brisbane'));
    $dt->setTimestamp(strtotime($value));

    return $dt->format('F j, Y @ G:i');
}