2017-04-15 32 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秒

它将正常工作。

相关问题