2017-04-15 83 views
0

請檢查兩個回聲及其輸出。在兩個地方,我傳遞相同的值,但是當我使用server_time_as_per_users_zone()函數時,它只是返回錯誤的信息。我如何從第一個回聲中獲得類似的正確輸出?任何想法?php時區錯誤輸出傳遞給另一個函數

function distance_finder($_d1,$_d2){ 
    $d1= new DateTime($_d1); 
    $d2= new DateTime($_d2); 
    $interval= $d1->diff($d2); 
    $r = ($interval->days * 24) + $interval->h; 
    return $r; 
} 

function server_time_as_per_users_zone($users_zone){ 
    $dateTime = new DateTime('now', new DateTimeZone($users_zone)); 
    $date1 = $dateTime->format("d-m-y h:m:sa"); 
    return $date1; 
} 

echo distance_finder("15-04-2017 01:33:26pm", server_time_as_per_users_zone('Asia/Dhaka')); //Output is: 17487 
echo distance_finder("15-04-2017 01:33:26pm","16-04-2017 02:33:29pm"); //Output is: 25 which is correct 

回答

0

您需要Y格式化,不y(前返回4位數字的年份,後2位數的年份)。所以,正確的函數將是這樣:

function server_time_as_per_users_zone($users_zone){ 
$dateTime = new DateTime('now', new DateTimeZone($users_zone)); 
$date1 = $dateTime->format("d-m-Y h:m:sa"); 
return $date1; 
} 
0

使用Ÿ只是換成y爲Y

$日期1 = $ dateTime->格式(「DMY H:M: SA「);

你會得到15-04- 下午11時04分16秒

爲Y

你會得到15-04- 2017年下午11時04分16秒

它將正常工作。

相關問題