Sur notre site, nous avons beaucoup de temps de natation que nous aimerions convertir en quelques secondes. I.E. 1: 23: 33.03 ou 58: 22.43. Y a-t-il une fonction PHP qui peut faire cela? Une fonction mysql? P>
7 Réponses :
Strtotime est ce dont vous avez besoin. Vous obtenez un horodatage UNIX qui dans ce cas serait le nombre de secondes. P>
Pas tellement à la recherche d'une heure de la journée, à la recherche d'une conversion d'une durée de nage dans HH: mm: Ss.xx ou mm: Ss.xx à TOTAL secondes
Encore une fois, vous pouvez simplement utiliser Strtotime pour convertir entre Timelaps au total des secondes.
function time2seconds($time='00:00:00')
{
list($hours, $mins, $secs) = explode(':', $time);
return ($hours * 3600 ) + ($mins * 60 ) + $secs;
}
From here.MySQL also has TIME_TO_SEC()
Je ne voudrais probablement pas le nommer comme ça, mais c'est la bonne idée.
@jasonbar: Vous avez volé ma réponse
En fait j'ai réussi à ne pas voler. Et je pose mon commentaire sur "Voler" avant de voir son "pourquoi le bowvote?". Donc, mon commentaire n'est pas une réponse à cela. Et juste après cela j'ai changé de vote à +1 pour être poli ;-)
Je suis un peu confus mais je pense que tu veux dire. 1 heure, 23 minuts et 23,03 secondes.
Ce n'est pas difficile à faire. J'ai fait cette fonction PHP qui le fait. Mon serveur PHP ne veut pas démarrer, alors je ne pouvais donc pas le tester, mais je pense que cela devrait fonctionner. P>
function ConvertTimeToSeconds($T)
{
$exp = explode(":",$T);
$c = count($exp);
$r = 0;
if ($c == 2)
{
$r = (((int)$exp[0]) * 60) + ((int)$exp[1]);
}else{
$r = (((int)$exp[0]) * 3600) + (((int)$exp[1]) * 60) + ((int)$exp[2]);
}
return $r;
}
ConvertTimeToSeconds("1:23:33.03");
http: //dev.mysql.com/doc/refman/5.1/fr/date-and-time-fonctions.html#function_time-to-sec
@zerkms - Qu'en est-il des fractions de secondes?
rien. MySQL n'a pas de fractions à son temps / DateTime DaTatypes: -S
En réalité, MySQL vous permettra de spécifier des microsecondes dans les littéraux de date / heure passés aux différentes fonctions de date / heure et de valeur de retour de certaines de ces fonctions. Il ne les stockera tout simplement pas dans des colonnes de date, de DateTime ou d'horodatage.
Donc, si MySQL sans fractions pas une solution appropriée - voici une autre mine
$time = '1:23:33.03';
$parts = explode(':', $time);
$seconds = 0;
foreach ($parts as $i => $val) {
$seconds += $val * pow(60, 2 - $i);
}
echo $seconds;
Utilisez le programme suivant pour convertir le temps en secondes dans PHP.
<?php
function time_to_sec($time) {
$hours = substr($time, 0, -6);
$minutes = substr($time, -5, 2);
$seconds = substr($time, -2);
return $hours * 3600 + $minutes * 60 + $seconds;
}
$result=time_to_sec('12:25:59');
echo $result;
?>
$ actuel_time_in_seconds = "01: 21: 44.24"; obtiendra de P> 01: 21: 44.24 P> à p> 4904.24 P> P>
Maintenant, pourquoi je n'ai pas pensé à ça ...? :-)