6
votes

Date PHP () heures, minutes et secondes sans zéros de premier plan

Dupliqué possible:
Convertir des secondes à l'heure: minute: Deuxième

Je cherche partout sur Internet pour trouver un bon moyen de convertir des secondes en minutes: secondes sans leader des zéros. J'ai déjà vérifié Cette question , qui est la seule que j'étais même capable Pour trouver, toutefois aucune de ces réponses ne semble très bonne. Peut-être qu'ils sont la meilleure et la meilleure façon de y parvenir, mais j'espère que non.

Je l'ai fait et cela me donne le nombre de minutes sans les principaux zéros, mais je ne suis pas en mesure d'obtenir les secondes. La seule façon dont je peux penser à ce faire, cette façon serait de faire quelques lignes de mathématiques et telles que cela semble être un excellent travail pour quelque chose de simple que cela ... ce que je ne sais pas pourquoi php ne 't l'avoir intégré pendant des minutes et des secondes de toute façon ... xxx

edit Tout ce que j'essaie de faire est de convertir le nombre de secondes dans une vidéo, en un format H: M: S.


6 commentaires

De quoi avez-vous besoin intval () pour? Pourquoi l'avez-vous ajouté?


Eh bien, c'est l'une des réponses sur l'autre question de trop-plein dans ma question, elle supprime les zéros et tout le reste aussi ..


non ça ne le fait pas. Veuillez lire la documentation avant d'appliquer des fonctions de manière aléatoire: PHP.net/Intval


Comme je l'ai dit, je ne l'ai pas appliqué moi-même, c'était l'une des rares réponses sur le seul sujet de ceci, et il a été suggéré de cette façon à quelques reprises si je ne me trompe pas. En outre, j'étais juste en train de dire ce qu'il a fait à ma date, qu'il a retiré les zéros et les valeurs non numériques.


«Comme je l'ai dit, je ne l'ai pas appliqué moi-même, c'était l'une des rares réponses sur le seul sujet» - même pire. C'est une communauté de programmeurs, pas de Code-Copy-Pasters.


Ce n'est pas un duplicata de ce poteau, je veux supprimer des zéros de premier plan .. celui-là ne .....


3 Réponses :


1
votes

Gmdate prend un horodatage comme deuxième paramètre. Vous devriez faire quelque chose comme ceci:

echo gmdate("H:i:s", mktime(0, 0, 0, 1, 1, 1998) + $duration);


5 commentaires

Je souhaite supprimer les zéros de premier plan, le code ci-dessus ne le fait pas.


Si vous voulez sans le chanteur 0, vous devrez utiliser $ des heures = date ("h", mktime (0, 0, 0, 1, 1, 1998) + $ Durée); $ minutes = Intval (date ("i", mktime (0, 0, 0, 1, 1, 1998) + Durée)); $ secondes = Intval (date ("s", mktime (0, 0, 0, 1, 1, 1998) + Durée));


J'ai édité mon code, j'ai un sentiment que vous devriez utiliser la date au lieu de gmdate. Sinon, cela peut ne pas être précis en fonction de la date du serveur.


Merci, le seul problème est que l'heure, quand elle devrait être nulle, c'est maintenant 12 ans, mais avant de l'éditer, c'était 5.


Vous avez raison, il devrait être $ heure = date ("g", mktime (0, 0, 0, 1, 1, 1998) + $ Durée);



2
votes
preg_replace(
    '~^0:~',
    '', 
    implode(
        ':',
        array_map(
            function($i) { return intval($i, 10); },
            explode(':', gmdate('H:i:s', $duration))
        )
    )
)

5 commentaires

Bon travail sur tout avoir en 1 ligne :).


Merci, cela a le résultat attendu. Je n'ai pas posé cela, cependant, qu'en est-il de l'heure == 0, puis n'imprimez pas 0: et juste avoir m: s


@Dylan Cross: Voir la version 2


Pour toutes les durées <86400 secondes :)


En fait ... je me sens horriblement stupide maintenant, c'est tout ce dont j'ai vraiment besoin. J'ai réalisé après que je ne voulais pas que les zéros principaux dans les secondes soient supprimés du tout. Preg_replace ('~ ^ 00: 0 ~', '', Gmdate ("H: I: S", Durée $));



2
votes

Je voudrais simplement l'écrire itérativement: xxx


2 commentaires

Ce serait bien aussi, même si je ne pouvais toujours pas comprendre pourquoi PHP n'inclut pas les minutes et les secondes sans leader des zéros.


@Dylancross Seulement le savoir privilégié Pourquoi, ils ont peut-être manqué de lettres utiles à utiliser comme des spécificateurs de format ;-)