2017-04-15 3 views
0

Bitte überprüfen Sie zwei Echo und seine Ausgabe. An beiden Orten übergebe ich denselben Wert, aber wenn ich die server_time_as_per_users_zone() -Funktion verwende, gibt es nur falsche Informationen zurück. Wie kann ich eine ähnliche korrekte Ausgabe vom ersten Echo erhalten? irgendeine Idee?php timezone falscher Ausgang beim Übergang zu einer anderen Funktion

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 

Antwort

0

Sie müssen sich mit Y zu formatieren, nicht y (dem ehemaligen Rückkehr 4-stelliges Jahr, wobei letztere zwei stelliges Jahr). So ist die korrekte Funktion wäre dies:

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

Ja

Ersetzen Sie einfach y Y

mit y

$ date1 = $ DatumZeit-> Format ("dmy h: m: sa ");

werden Sie 15-04- 11.04.16

mit Y erhalten

Sie 15-04- 11:04:16 pm

bekommen Und es wird gut funktionieren.

Verwandte Themen