时间戳php函数的帮助


assistance with a timestamp php function

我需要将时间戳转换为UTC-5

$offset是用户的时区,值从-12到12。$ds是夏令时,如果它打开,会增加一个小时。我做了这个函数,但我认为它会根据用户的时区将UTC-5时间戳转换为新的时间戳。。。我需要将函数反转,以便它在UTC-5中返回时间戳。当然,问题比这个大得多,但这就是我的症结所在。有什么办法吗?

function input_date($timestamp)
{
    global $vbulletin;
    $timestamp = (int)$timestamp;
    if (strlen((string)$timestamp) == 10)
    {
        $hour = 3600.00;
        $offset = $vbulletin->userinfo['timezoneoffset'];//sample -8
        $ds = (int)$vbulletin->userinfo['dstonoff'];//DST values are 1 or 0
        $fluff = $hour*($offset+5.00);
        $timestamp = $timestamp+$fluff+($ds*$hour);
        return $timestamp;//return timestamp in UTC-5 format..
    }
    else
    {
        return 0;
    }
}

哇。。。谈谈重新发明轮子!在一个臭名昭著的难以正确处理的领域(日期/时间操纵)也同样如此。

你看过DateTime和DateTimeZone课程吗?除了做基本的数学运算外,他们还将帮助你了解这个编程领域的特殊细节(每个县的夏令时!闰年!)。

不过,我不得不问,你为什么这么做?根据定义,UNIX时间戳独立于时区、夏令时等。它被精确地定义为自给定参考日期以来经过的秒数,并且时间流(尽管存在相对论效应;-)相对于位置或立法者的特定特性是不变的。

也许如果你能更详细地描述你的实际目标是什么,那么我们可能会提出一个更连贯的方法。