2017-05-05 3 views
0

Ich habe Kunden aus verschiedenen Zeitzonen, und ich muss analysieren ihre System-Protokolle, die das Datum in ihrer lokalen Maschine Zeitzone gedruckt wird.PHP Neuformatierung Datetime ohne Rücksicht auf Zeitzone

Beispiel: Mo 3. April 00.50.15 CST 2017

Ich kümmere eigentlich nicht über ihre Zeitzone, was ich in meiner Anwendung drucken muß nur ihre lokale Zeit, so dass der Ausdruck in meinem apps Seite muss sein: 2017-04-03 00:50:15.

wie das angegebene Datum ohne Rücksicht auf ihre Zeitzone oder meine lokale Server-Zeitzone oder ohne müssen date_default_timezone_set in meinen Apps konvertieren? Gibt es irgendeine PHP-Funktion, um das zu tun?

Ich möchte vermeiden, String-Manipulation so viel wie möglich zu verwenden.

danke im voraus.

BR // G

Antwort

1

Nun, für alle zeitbezogene Operationen erwartet PHP Sie eine default Zeitzone einzustellen (sonst Warnungen gegeben werden). Ich denke jedoch, dass Sie einfach nach einem Formatierungsvorgang suchen.

<?php 
date_default_timezone_set("UTC"); 
$source = "Mon Apr 03 00:50:15 CST 2017"; 
$dateOb = new DateTime($source); 
print_r($dateOb); 
echo $dateOb->format("Y-m-d H:i:s"); 

Ausgang:

DateTime Object 
(
    [date] => 2017-04-03 00:50:15.000000 
    [timezone_type] => 2 
    [timezone] => CST 
) 
2017-04-03 00:50:15 
+0

ehrfürchtig! das funktioniert sehr gut! das ist was ich suche. Vielen Dank ! :) – guete

0

Sie können date_format verwenden, wenn Sie nur Ihr Datum zu formatieren möchten.

$date=date_create("Mon Apr 03 00:50:15 CST 2017"); 
echo date_format($date,"Y-m-d H:i:s"); 
+0

es gibt Ihnen eine Warnung: PHP Warnung: date_create(): Es ist nicht sicher, sich auf die Zeitzoneneinstellungen des Systems zu verlassen. – guete

0

Sie benötigen eine gewünschte Zeitzone einstellen, die von allen Datums-/Zeitfunktionen verwendet werden, indem Sie Ihre Zeitzone Kennung mit date_default_timezone_set('parameter'); Einstellung. Suchen Sie die Liste der unterstützten Zeitzonen unter http://php.net/manual/en/timezones.php. Und dann benutzen Sie date_default_timezone_get();, um Ihre gegebene Zeitzone zu erhalten

<?php 
date_default_timezone_set('Asia/Manila'); 
date_default_timezone_get(); 
echo date('Y-m-d H:i:s') ; 
?>