需要一种方法将日期从服务器的时区转换为用户的时区

时间:2010-07-13 10:34:05

标签: php date timezone

我需要一种可以将给定日期从一个时区转换为另一个时区的方法。类似的东西:

日期格式: 2010-07-13 12:34:00

$newDestinationDate = $convertTimeZoneDate($dateTime, $serverTimeZone, $userTimeZone)

请帮帮忙?

2 个答案:

答案 0 :(得分:2)

如果您使用的是PHP> 5.2.0(这至少应该是你应该做的):

function convertTimeZoneDate($dateTime, $serverTimeZone, $userTimeZone) 
{
    $serverTimeZone = new DateTimeZone($serverTimeZone);
    $userTimeZone   = new DateTimeZone($userTimeZone);

    $dateTime       = new DateTime($dateTime, $serverTimeZone);
    $dateTime->setTimezone($userTimeZone);

    return $dateTime->format('Y-m-d H:i:s');
}

$newDestinationDate = convertTimeZoneDate('2010-07-13 12:34:00', 'Europe/London', 'America/Los_Angeles'); 
// by the way, it's convertTimeZoneDate() and not $convertTimeZoneDate()

答案 1 :(得分:0)

谢谢Stefan。我还需要一个我自己发现的查询:)。

我需要在不同时区的当前时间,这可以通过以下声明来完成:

date_default_timezone_set($newTimeZone);
$dateTime = new DateTime();
$newZoneCurrentDateTime = $dateTime->format('Y-m-d H:i:s');