-1

我有以下代码:

$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 因此我需要将 $start_time 和 $end_time 转换为 UTC 格式以进行正确计算。

希望你明白我的意思。

4

2 回答 2

0

使用可以使用getOffset函数 对于时区转换你可以以此为例

<?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 时区转换为纽约时区。

于 2013-03-28T12:01:22.333 回答
0

试试 dateTime 类。

$date = new DateTime("2010-07-05T06:00:00Z");
$date->setTimeZone(new DateTimeZone("UTC"));
于 2013-03-28T11:38:29.340 回答