2017-06-08 1 views
-1

Ich arbeite mit PHP und möchte eine Zeit scrubben aus einer XML-Datei konvertieren. Die Zeit in der XML ist <startTime>0945</startTime> für 9:45 und <startTime>1330</startTime> für 1:30.Extrahieren Sie nur die Stunden und Minuten aus einem Unix-Timestamp-Code.

Ich verwende strtotime(xml_time), um den Unix-Zeitstempel zu erhalten. Aber jetzt muss ich nur die Zeit selbst extrahieren. Ich muss es nicht mit der aktuellen Zeit vergleichen, ich muss keine Datumsinformationen hinzufügen, und ich bin nicht mit der Zeitzone beschäftigt. Kann mir jemand helfen mit welcher Funktion zu verwenden (wenn anders) oder wie man strtotime() ändert, um dies zu erreichen?

Danke!

+0

Wir sind ** nicht ** ein Code-Schreiben-Service. Weitere Informationen finden Sie unter [So stellen Sie eine gute Frage?] (Https://stackoverflow.com/help/how-to-ask). Hast du versucht zu recherchieren? Was hast du probiert? Fragen hier sollten ein eindeutiges Problem/eine Frage haben, mit Forschung gezeigt, und ein Beispiel [Minimal, vollständig und verifizierbar] (https://stackoverflow.com/help/mcve). – GrumpyCrouton

+0

Ein Unix-Zeitstempel ist die Anzahl der Sekunden seit dem 1. Januar 1970 UTC. Wie können Sie es berechnen, wenn Sie kein Datum haben? –

+0

@GrumpyCrouton - Ich denke, ich verstehe das Pseudonym, das Sie ausgewählt haben. Ja, ich habe recherchiert ... Ich habe nicht die Antwort gefunden, die ich brauchte, weshalb ich gefragt habe. Es half uns, die Hürde zu überwinden. Danke jrn für die Antwort. Es hat genau das gemacht, was ich brauchte. – drmail

Antwort

-1

Sie können date verwenden, um die Zeitparameter zu extrahieren Sie benötigen:

echo $time = date("H:i:s",strtotime($xml_time)); 
0

Um 1330 in 13:30 konvertieren Sie eine der String-Manipulation Funktionen nutzen zu können, zum Beispiel:

$input = '1330'; 
var_dump(mb_substr($input, 0, 2) . ':' . mb_substr($input, 2, 2)); 

demo

Wenn Sie strtotime() mit unvollständigen Daten füttern, füllt es die Lücken mit Bits vom aktuellen Datum und unter Verwendung der Standardzeitzone. Dies wird zu einer zufälligen zu unerwarteten Ergebnissen führen, je nachdem, welche Zeit es ist, wenn das Skript ausgeführt wird:

var_dump(date('H:i:s', strtotime('0230'))); 

string (8) "02.30.00"

var_dump(date('H:i:s', strtotime('0230', mktime(1, 30, 50, 3, 26, 2017)))); 

Zeichenfolge (8) "03:30:00"

Verwandte Themen