根据用户时区设置设置 Codeigniter 时间戳

Setting Codeigniter Timestamp in accordance to user Timezone settings

如何根据用户的时区设置记录时间戳?

例如:

  1. 用户将时区设置为 $my_tz = "UP3";
  2. 用户设置一个项目的截止日期为$time_to_set = "2017-05-31 03:15 PM";
  3. 例如,我需要具有不同时区设置的用户根据他们的时区正确转换时间(例如用户 1:UP3,用户 2:UP8)。他们需要正确地看时间。我尝试设置,但偏移量似乎有 +1 小时的差异,而且不准确。
  4. 我需要将设置为时区 (UP3) 的时间转换为 (UTC) 基准,而不会在 +1 小时后停止。

非常感谢!

这是我的代码,您可以测试一下以了解我的意思。

    $my_tz = "UP3";
    $utc_time = local_to_gmt(time());
    $current_time = gmt_to_local($utc_time, $my_tz, FALSE);

    echo "Current Time: ".unix_to_human($current_time)."</br>";
    echo $current_time;
    echo "</br></br></br></br>";

    $time_to_set = "2017-05-31 03:15 PM";
    $time_set_unix = human_to_unix($time_to_set);
    $time_to_normal = local_to_gmt($time_set_unix, "UP8", FALSE);

    echo $time_to_set."</br>";
    echo $time_set_unix."</br>";
    echo $time_to_normal."</br>";
    echo unix_to_human($time_to_normal)."</br>";

我解决了我的问题。我放弃了 CI Date Helper 并选择了默认的 PHP 一个。这比通过反复试验并始终获得与实际时间相差甚远的偏移量要好得多。

@astound 的回答对此也有帮助。