2017-06-08 1 views
-1

Je travaille avec php et je veux convertir un temps scrubbed d'un fichier xml. L'heure dans le fichier XML est <startTime>0945</startTime> pour 9:45 et <startTime>1330</startTime> pour 1:30.Extraction des heures et des minutes d'un code Unix Timestamp uniquement.

J'utilise strtotime(xml_time) pour obtenir l'horodatage unix. Mais maintenant je n'ai besoin d'extraire que le temps lui-même. Je n'ai pas besoin de le comparer à l'heure actuelle, je n'ai pas besoin d'inclure d'informations sur la date, et je ne suis pas concerné par le fuseau horaire. Quelqu'un peut-il m'aider avec quelle fonction utiliser (si différent) ou comment modifier strtotime() pour accomplir ceci?

Merci!

+0

Nous ne sommes pas ** un service de rédaction de code. Veuillez vous référer à [Comment poser une bonne question?] (Https://stackoverflow.com/help/how-to-ask). Avez-vous essayé de faire des recherches? Qu'avez-vous essayé? Les questions ici doivent avoir un problème/une question claire, avec une recherche montrée, et un exemple [Minimal, Complete, and Verifiable] (https://stackoverflow.com/help/mcve). – GrumpyCrouton

+0

Un horodatage Unix correspond au nombre de secondes écoulées depuis le 1er janvier 1970 UTC. Comment pouvez-vous le calculer si vous n'avez pas de date? –

+0

@GrumpyCrouton - Je suppose que je comprends le pseudonyme que vous avez choisi. Oui, j'ai fait des recherches ... Je n'ai pas trouvé la réponse dont j'avais besoin, c'est pourquoi j'ai demandé. Cela nous a aidés à franchir l'obstacle. Merci pour la réponse. Il a fait exactement ce dont j'avais besoin. – drmail

Répondre

-1

Vous pouvez utiliser date pour extraire les paramètres de temps dont vous avez besoin:

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

Pour convertir 1330 en 13:30 vous pouvez utiliser l'une des fonctions de manipulation de chaîne, par exemple:

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

demo

Si vous alimentez strtotime() avec des dates incomplètes, il va combler les lacunes avec bits de la date actuelle et en utilisant le fuseau horaire par défaut. Cela conduira à des résultats inattendus au hasard en fonction de l'heure qu'il est lorsque le script est exécuté:

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

(8) "02:30:00"

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

chaîne (8) "03:30:00"