2013-03-28 133 views
-1

我有以下代码:转换时间UTC格式

$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转换为正确的计算。

希望你明白了我的观点。

+0

为什么是负面....? – Sky

+2

[你有什么尝试](http://mattgemmell.com/2008/12/08/what-have-you-tried/)。附:我不是downvoter。只是回答你的问题。 – SomeShinyObject

+2

这个问题没有显示任何研究工作。 **做你的作业很重要**。告诉我们你发现了什么,***为什么它不符合你的需求。这表明你已经花时间去尝试帮助你自己了,它使我们避免重申明显的答案,最重要的是它可以帮助你得到更具体和相关的答案。 [FAQ](http://stackoverflow.com/questions/how-to-ask)。 –

回答

0

试试看dateTime类。

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

感谢回答,但Plz检查修改后 – Sky

+0

嗨我试过这个,但它不起作用 – Sky

+0

给错误:可捕捉的致命错误:类DateTime的对象无法转换为字符串 – Sky

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时间到纽约时区。