Conversion des chaînes de temps au format HH:MM:SS en secondes
Problème :
Comment pouvez-vous convertir une chaîne d'heure au format HH:MM:SS en un nombre de secondes plat ? La chaîne d'heure peut parfois être au format MM:SS uniquement.
Solution :
Méthode 1 : Utilisation d'expressions régulières
Pour convertir la chaîne de temps sans la diviser, utilisez ce qui suit code :
$str_time = "23:12:95"; $str_time = preg_replace("/^([\d]{1,2})\:([\d]{2})$/", "00::", $str_time); sscanf($str_time, "%d:%d:%d", $hours, $minutes, $seconds); $time_seconds = $hours * 3600 + $minutes * 60 + $seconds;
Méthode 2 : Utilisation de sscanf()
Si les expressions régulières ne sont pas préférées, utilisez le code suivant :
$str_time = "2:50"; sscanf($str_time, "%d:%d:%d", $hours, $minutes, $seconds); $time_seconds = isset($seconds) ? $hours * 3600 + $minutes * 60 + $seconds : $hours * 60 + $minutes;
Dans la deuxième méthode, vérifiez si la variable seconds est définie pour gérer correctement les chaînes de temps au format MM:SS.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!