Convertir youtube Api v3 durée de la vidéo en php

comment puis-je convertir des PT2H34M25S à 2:34:25

J'ai recherché et utilisé ce code. Je suis nouveau sur regex quelqu'un peut-il expliquer cela ? et m'aider avec mon problème

function covtime($youtube_time){
        preg_match_all('/(\d+)/',$youtube_time,$parts);
        $hours = floor($parts[0][0]/60);
        $minutes = $parts[0][0]%60;
        $seconds = $parts[0][1];
        if($hours != 0)
            return $hours.':'.$minutes.':'.$seconds;
        else
            return $minutes.':'.$seconds;
    }   

mais ce code ne me donne que HH:MM

idiots, a trouvé la solution :

   function covtime($youtube_time){
            preg_match_all('/(\d+)/',$youtube_time,$parts);
            $hours = $parts[0][0];
            $minutes = $parts[0][1];
            $seconds = $parts[0][2];
            if($seconds != 0)
                return $hours.':'.$minutes.':'.$seconds;
            else
                return $hours.':'.$minutes;
        }
  • Êtes-vous sûr que ce n'est pas de vous donner de MM:SS (le deuxième cas dans votre conditionnelle)? Je ne vois pas un chemin de code qui pourrait de sortie HH:MM.
  • il me donne MM:SS, mais pas HH:MM:SS
  • Et êtes-vous sûr essayé avec une vidéo de plus d'une heure de temps? Aussi, le format d'entrée de l'exemple que vous donnez dans votre question clairement a 3 chiffres séquences, alors pourquoi est-ce que votre code de considérer seulement les 2 premiers?
  • viens de trouver la solution ont posté ci-dessus merci pour votre aide
  • J'ai édité ma réponse avec une nouvelle fonction pour vous de regarder. Il y a encore plus de validation qui peut être fait. Aussi il ressemble à quelqu'un a supprimé la modification que vous mettez dans votre question.
  • solution échoue sur les vidéos que le rapport d'une durée de 1:00:01. voir ma réponse: stackoverflow.com/a/35836604