2015-08-09 30 views
6

Ich habe einen Code, der ein Protokoll in einem Server-Ordner drucken, dieses Protokoll gibt auch ein Datum mit Stunden zurück, aber der Server ist nicht in meiner Nation, so dass die Stunden für mich falsch ist. Eigentlich ist das mein Code:Wie Zeitzone mit DateTime-Objekt festlegen?

$now = new DateTime(); 
$aggiornata = "\r\n" . "Aggiornamento eseguito con successo per: " . $value['caption'] . " DATA: " . $now->format('d-m-Y H:i:s'); 
file_put_contents(getenv('OPENSHIFT_REPO_DIR').'php/log.txt', $aggiornata, FILE_APPEND); 

Wie stelle ich die richtige Stunde für Italien ein?

Antwort

2

Blick auf DateTimeZone

$date = new DateTime('now',new DateTimeZone("Europe/Rome")); 
+0

$ Datum-> Format ('d-M-Y-H: i: s'); ist auch gültig? Weil im Protokoll nichts mit deiner Editierung gedruckt wird –

+0

ja es ist gültig, wie loggst du denn btw? –

+0

Meine Protokolldatei zeigt die Aktualisierungszeit einer bestimmten Saison, die durch den Parameter $ value ['caption'] erkannt wird. Ich habe versucht, den Code in localhost und die Datei erstellt, aber auf OpenShift-Server funktioniert dieser Code nicht. –

1

Sie können es im Konstruktor als zweites Argument gesetzt

$date = new DateTime(null, new DateTimeZone('Europe/Rome')); 

oder später mit setTimezone Funktion

$date = new DateTime(); 
$date->setTimezone(new DateTimeZone('Europe/Rome')); 

Sie können mehr darüber lesen Sie hier http://php.net/manual/en/datetime.settimezone.php

+0

Dies ist kein Problem, und die Zeitzone im DateTime-Objekt hat damit nichts zu tun. –

2

Sie können es auch von Ihrer Datei an der Spitze tun, wie zum Beispiel:

date_default_timezone_set('Europe/Rome');

0

Arbeiten mit Zeitzonen in PHP ist ziemlich einfach. Unten folgt ein Beispiel:

// Create a new DateTime object 
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru')); 

// Output 
echo $date->format('Y-m-d H:i:sP') . "\n"; 

// Change timezone 
$date->setTimezone(new DateTimeZone('Pacific/Chatham')); 

// Output again 
echo $date->format('Y-m-d H:i:sP') . "\n"; 

Referenz:

PHP Manual - DateTimeZone