PHP —Convertir millisecondes d'Heures : Minutes : Secondes.les fractions
J'ai un script qui prend une valeur en secondes (à 2 points décimaux, de fractions de secondes):
$seconds_input = 23.75
Je puis de le convertir en millisecondes:
$milliseconds = $seconds_input * 1000; //--> 23750
Et puis je veux le formater comme suit:
H:M:S.x //--> 0:0:23.75
Où " x " correspond à la fraction de seconde (cependant, le nombre de décimales après la virgule).
De l'aide? Je n'arrive pas à envelopper mon esprit autour de cette. J'ai essayé d'utiliser gmdate() mais il continuait à tailler hors les fractions de secondes.
Grâce.
us.php.net/manual/en/function.sprintf.php
Je voulais juste rajouter que c'était pour produire une valeur d'entrée pour FFMPEG -ss champ. En incluant les fractions de secondes, il améliore la précision de l'image cible et permet à l'utilisateur de près de la exact cadre de regarder dans le lecteur vidéo. Merci encore à tous, vous m'avez sauvé une tonne de temps.
Je voulais juste rajouter que c'était pour produire une valeur d'entrée pour FFMPEG -ss champ. En incluant les fractions de secondes, il améliore la précision de l'image cible et permet à l'utilisateur de près de la exact cadre de regarder dans le lecteur vidéo. Merci encore à tous, vous m'avez sauvé une tonne de temps.
OriginalL'auteur AJB | 2011-01-21
Vous devez vous connecter pour publier un commentaire.
Mon prendre
Et le test
qui donne
Je suis un php noob, j'ai trouvé que @ircmaxell est ne fonctionne pas pour toutes les valeurs. Dans mon cas, ms valeur: 1189107. Je me déplace 23hrs à l'aide de ircmaxell fonction et 00.19:49 utilisation de la vôtre.
OriginalL'auteur Peter Bailey
Edit: Bien, j'ai été un peu vite en besogne. Voici une façon de faire ce que vous demandez:
De ce que je comprends, ils parlent d'une durée et non sur un datetime.
Cela pourrait être un problème, mais seulement si la durée est de plus de 24 heures.
H:M:S
est incorrect. Qui serait de retour18:Dec:st.0
.Ouais, je viens d'essayer et je suis 18:Dec:st.0. Je pense que c'est le bon sens même si, grâce ircmaxell.
OriginalL'auteur ircmaxell
Le mien est beaucoup moins lisible, donc ça doit être mieux. :p
Fondamentalement la même idée que @ircmaxell de la version. Il n'garniture de fuite '0' et même ignorer la dernière '.' séparateur si millisecondes sont 0.
J'aime Débordement de la Pile. Merci tout le monde. Je ne suis même pas sûr de celui que j'aime le mieux.
OriginalL'auteur GolezTrol
si vous voulez vraiment faire à l'aide de la fonction de date, vous avez raison, vous avez à traiter avec les millisecondes de l'extérieur, est uniquement basée sur la deuxième horodateurs.
vous pourriez faire quelque chose comme ceci:
mais être conscient de l'heure de dépassement, si vos heures dépasser 24 vous allez probablement finir par en rejetant les jours.
dans votre cas, je dirais que votre approche avec le sol pour obtenir la secondes est correct, et alors vous devriez probablement utiliser l'arithmétique modulo comme ceci:
?>
et ainsi de suite..
OriginalL'auteur The Surrican