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

时间:2017-05-30 06:36:34

标签: php codeigniter time unix-timestamp timestamp-with-timezone

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

例如:

  1. 用户将时区设置为$ my_tz =“UP3”;
  2. 用户将项目的截止日期设置为$ time_to_set =“2017-05-31 03:15 PM”;
  3. 我需要用户使用不同的时区设置来根据时区正确转换时间(例如USER 1:UP3,USER 2:UP8)。他们需要正确地看待时间。我试图设置,但偏移似乎有+1小时的差异,这是不准确的。
  4. 我需要将时间设置为时区(UP3)转换为(UTC)基础,而不是+1小时。
  5. 非常感谢你!

    这是我可以测试的代码,看看我的意思。

        $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>";
    

1 个答案:

答案 0 :(得分:0)

我解决了我的问题。我放弃了CI Date Helper并选择了默认的PHP。它比通过反复试验要好得多,总是得到一个偏离实际时间的偏移量。

@ astound的回答也有助于此。