PHP如何调整可用性时区

时间:2012-12-07 19:26:10

标签: php timezone

当用户注册我的网站时,他们会以这种格式输入他们的每周可用性:

周一1300至1400 周一2100至2200

周二1200至1300 周二1400至1500

等。

他们还根据选择菜单指示他们的时区,例如America / Los_Angeles。

我想要发生的是,根据访问其设置了不同时区的个人资料的用户的时区来调整这些时间。对此最好的解决方案是什么?

3 个答案:

答案 0 :(得分:2)

将他们的可用性存储为EPOCH的秒数,然后根据用户的时区将其转换为适当的时间。

答案 1 :(得分:0)

将UTC和所选时区之间的差异存储在字段值

<option value="3">UTC+3 timezone</option>
<option value="-5">UTC-5 timezone</option>

然后将其添加或切割为小时输出​​。 如果这种差异提供了负面结果或超过24小时 - 设定一周的下一天或前一天。

我认为你不需要unixtime这样的间隔。

答案 2 :(得分:0)

我实际上最终这样做了:

<?php while ($ava = mysql_fetch_array($avail_action)) { 
    date_default_timezone_set($profile_owners_timezone);
    $timestamp_from = strtotime($ava['time_from']);
    $timestamp_to = strtotime($ava['time_to']);

            date_default_timezone_set($_SESSION['timezone']);
    $time_from = date("g:i A", $timestamp_from);
    $time_to = date("g:i A", $timestamp_to); ?>

基本上我得到了他/她输入的个人资料“所有者”时区,将时区设置为该时区,然后将时区设置为“查看者”时区并将变量设置为该时区。

谢谢大家的帮助!