2016-04-06 5 views
1

Ich benutze Carbon für die Manipulation von Daten in einem Laravel-Projekt.Carbon :: now() mit Zeitversatz führt zu unterschiedlichen Verhaltensweisen

Carbon::now('+5:30'); 

Der obige Code funktioniert in der lokalen Umgebung, aber nicht in der Entwicklungsumgebung.

Das ist, was ich auf dd(Carbon::now('+5:30'));

1 erhalten - IN lokaler UmgebungPHP-Version - 5.6.3

enter image description here

2 - IN DER ENTWICKLUNG ENVIRONMENTPHP-Version - 5.5.9-1ubuntu4.14

enter image description here

Aber beide Umgebung verhält sich gleich, wenn ich anstelle von zeitversetzten Zeitzone Namen verwenden wie,

Carbon::now('Asia/Tokyo'); 

Ist das etwas über die PHP-Version oder etwas anderes?

Antwort

1

Ich habe eine Antwort für Sie nach der Suche nach verwandten Themen.

Es scheint, dass die PHP-Version 5.5.9 einen Fehler hatte:

https://stackoverflow.com/a/14069062/5912664

So können Sie diese Methode nicht mit Kohlenstoff verwenden, aber die folgenden sollte funktionieren:

Carbon::now()->addHours(5)->addMinutes(30); 

Sie kann die Zeitzone Ihres Servers für zusätzliche Genauigkeit dort einfügen:

Carbon::now(date_default_timezone_get())->addHours(5)->addMinutes(30); 
2

können Sie in

'timezone' => 'UTC' 

Diese Zeitzone mit der aktuellen Zone zone.So ersetzen müssen diese UTC zu Ihrem Land ändern lassen.

+0

Korrekt aber wha Es fragt sich, warum es in einigen Situationen nicht funktioniert und ich muss als "Carbon :: now" ('+ 5:30') tun, weil ich einige Male aus verschiedenen Ländern formatieren muss. –