2017-04-24 231 views
-3

我知道这个问题以前有人问,但不知何故我不能得到这个在我的项目工作,所以请大家指教转换时间为UTC

我的PHP代码(这一点,如果别人是因为如果时间设置检查或者没有)

if (isset($_POST['startDate']) && isset($_POST['startTime'])) 
{ 
    $date = $_POST['startDate'] . " " . $_POST['startTime']; 
    $date = new DateTime($date); 
    $date->setTimezone(new DateTimeZone('UTC')); 
// $date = date('Y-m-d H:i:s', $date); 

} else 
{ 
    $date = date('Y-m-d H:i:s'); 
    $date = new DateTime($date); 
    $date->setTimezone(new DateTimeZone('UTC')); 
} 
+0

'无法让这个工作'所以我们只是猜测会发生什么?你正在使用什么值? – Machavity

+0

它不起作用?对于其他人,您不需要将日期传递给DateTime。如果你没有传入任何东西,它将使用当前时间。 – aynber

+0

'echo $ _POST ['startDate']。 “”。 $ _POST ['startTime'];'这是什么? – AbraCadaver

回答

1

试一试::

<html> 
 
<head></head> 
 
<body> 
 

 
    <form action="#" method="POST"> 
 

 
     <input name="startDate" type="date"/> 
 

 
     <br> 
 

 
     <input name="startTime" type="time"/> 
 

 
     <input name="Submit" type="submit" value="Submit" /> 
 
    </form> 
 

 
</body> 
 
</html> 
 

 
<?php 
 

 
if(isset($_POST['Submit'])){ 
 

 
if(isset($_POST['startDate']) && isset($_POST['startTime'])) 
 
{ 
 
    $date = $_POST['startDate'] . " " . $_POST['startTime']; 
 
    // $date = "2016-02-01 00:00:01"; Like This.. 
 
    
 
    $date = new DateTime($date, new DateTimeZone("Asia/Calcutta")); 
 
    $date ->setTimezone(new DateTimeZone("UTC")); 
 
    
 
    $output = $date ->format("Y-m-d H:i:s"); 
 
    //echo $output; 
 

 
$date = new DateTime($output); 
 

 
// $date = date('Y-m-d H:i:s', $date); 
 

 
} else 
 
{ 
 
    $date ->format("Y-m-d H:i:s"); 
 
    $date = new DateTime($date, new DateTimeZone("Asia/Calcutta")); 
 
    $date ->setTimezone(new DateTimeZone("UTC")); 
 
} 
 

 

 
} 
 

 

 
?>

+0

我试试这个..它为我工作! :) –

+0

date_default_timezone_set('Asia/Kolkata'); ..你可以设置你的默认时区,如果你得到错误的时间.. –

+0

@dhaval ..你试试这个..本地运行这段代码。你得到什么输出? –