我有以下代码:
$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。
希望你明白我的意思。
答案 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时区。