-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

dateTime クラスを試してください。

$date = new DateTime("2010-07-05T06:00:00Z");
$date->setTimeZone(new DateTimeZone("UTC"));
于 2013-03-28T11:38:29.340 に答える
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 に答える