以UTC格式转换时间

时间:2013-03-28 11:36:39

标签: php time

我有以下代码:

$start_time="6:00 PM";

$end_time="10:00 PM";

上述时间根据国家timezone i.e (Asia/Colombo, Asia/Adelaide...etc)

我想进行以下计算:

date_default_timezone_set("UTC");
$system_time = date('g:i A'); //Getting the system time according to the UTC timezone

    $time_left_for_discussion = $start_time - $system_time;

    if ($system_day < $day) {
        return "Upcoming";
    } else if ($system_day == $day) {
        if ($time_left_for_discussion <= 0 && $system_time <= $end_time) {
            return "Live";
        } else {
            return "NA";
        }
    } else {
        return "NA";
    }

这里$ system_time是根据UTC时区。现在我想要$ time_left_for_discussion的计算,所以我需要转换UTC格式的$ start_time和$ end_time以获得正确的calucation。

希望你明白我的意思。

2 个答案:

答案 0 :(得分:0)

尝试使用dateTime类。

$date = new DateTime("2010-07-05T06:00:00Z");
$date->setTimeZone(new DateTimeZone("UTC"));

答案 1 :(得分:0)

使用可以使用getOffset function 对于时区转换,您可以将其用作示例

<?php

$userTimezone = new DateTimeZone('America/New_York');
$gmtTimezone = new DateTimeZone('GMT');
$myDateTime = new DateTime('2009-03-21 13:14', $gmtTimezone);
$offset = $userTimezone->getOffset($myDateTime);
echo $offset;

echo date('Y-m-d H:i', $myDateTime->format('U') + $offset)
?>

这会将时间从GMT时区转换为Newyork时区。