2017-04-24 198 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 ..你試試這個..本地運行這段代碼。你得到什麼輸出? –