php中的时区偏移量

时间:2014-03-12 03:30:46

标签: php timezone

我有一个时间表数组,我需要根据用户的时区动态检查时间的开始和结束。我已使用date_default_timezone_set();解决了问题,但我的问题是我无法更改静态拉取数据的日期。

有些时间是用户当前日期的前一天,例如'America/New_York''Asia/Singapore'分别为3/11/2014 11:28 pm3/12/2014 11:28 am

 Array
  (
    [timeTable] => Array
    (
        [1] => Array
            (
                [0] => stdClass Object
                    (
                        [id] => 519
                        [user_id] => 213
                        [day] => 1
                        [time_slot_id] => 1
                        [start] => 1375099200
                        [end] => 1375101300
                    )

                [1] => stdClass Object
                    (
                        [id] => 520
                        [user_id] => 213
                        [day] => 1
                        [time_slot_id] => 12
                        [start] => 1375125600
                        [end] => 1375127700
                    )

            )

    )

 [sameDayCount] => 2
)

我想到的方法是获得当前用户日前一天或前一天的所有偏移,并且每天 - 1天或1天+ 1。

如何根据用户所在的时区将时间和日期设置为静态数据?

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

您可以使用DateTime类在特定时间修改日期。 http://us3.php.net/manual/de/class.datetime.php

$datetime = new DateTime();
$datetime->setTimeStamp('1375125600');
$datetime->modify('+12 hours');

或者因为它已经处于unix时间,所以只需添加时间。

$unixtime = 1375125600;
// seconds * minutes * hours
$unixtime += 60 * 60 * 12;
echo date("F j, Y, g:i a", $unixtime);