-
Notifications
You must be signed in to change notification settings - Fork 48
Open
Description
Guest users not using configured America/Los_Angeles (PST) timezone
I’ve configured HumHub to force the application and database timezone to PST (America/Los_Angeles), but guest users are still shown content in UTC instead of the configured timezone. Logged-in users work correctly.
Steps to reproduce
- Enable timezone configuration in
common.php:
'formatter' => [
'timeZone' => 'America/Los_Angeles',
'defaultTimeZone' => 'America/Los_Angeles',
],
'db' => [
'class' => yii\db\Connection::class,
'on afterOpen' => function ($event) {
// Dynamic MySQL offset for America/Los_Angeles
$phpTzId = 'America/Los_Angeles';
$tz = new DateTimeZone($phpTzId);
$now = new DateTime('now', $tz);
$offset = $tz->getOffset($now);
$sign = $offset >= 0 ? '+' : '-';
$offset = abs($offset);
$hours = floor($offset / 3600);
$minutes = floor(($offset % 3600) / 60);
$mysqlOffset = sprintf('%s%02d:%02d', $sign, $hours, $minutes);
$event->sender
->createCommand("SET time_zone = :tz")
->bindValue(':tz', $mysqlOffset)
->execute();
},
],- Enable guest access in config:
'params' => [
'allowGuestAccess' => true,
],
'on beforeRequest' => function () {
Yii::$app->params['allowGuestAccess'] = true;
},- Visit the site as a guest (not logged in).
Expected behavior
All timestamps (posts, comments, activity stream, etc.) should display in America/Los_Angeles (PST/PDT) for guest users, consistent with logged-in users.
Actual behavior
Guest users still see UTC timestamps. Logged-in users respect the America/Los_Angeles timezone as expected.
Environment
- HumHub version: 1.16.4
- PHP version: 8.2.x
- MySQL version: 8.0.x
- OS: Ubuntu 22.04 LTS
Additional context
- I verified that MySQL session
time_zoneis correctly set viaSET time_zoneon connection. - The Yii
formatteris configured toAmerica/Los_Angeles. - Issue only affects guest users.
Related: humhub/humhub#4871
Verification snippet
To confirm DB session timezone is applied correctly, I added this check:
$result = Yii::$app->db->createCommand("SELECT @@session.time_zone")->queryScalar();
Yii::warning("MySQL session timezone = " . $result, 'db-timezone');Output in logs shows the correct offset (e.g. -07:00 for PDT), but guest pages still render in UTC.
Metadata
Metadata
Assignees
Labels
No labels