2017-09-23 6 views
0

J'ai deux valeurs de temps comme ci-dessous:Comment trouver le milieu de deux valeurs de temps en php?

$ a = 22:15

$ b = 28:50

28:50 impliquerait 04h50

Comment puis-je trouver au milieu de ces deux valeurs de temps? En mathématiques simples, ce serait comme ci-dessous:

$ c = (b- $ $ a)/2

* (ci-dessous édité en ligne) echo $ c + $ a;

Bien sûr, ce n'est pas si simple, j'ai fait Google et cherché partout, mais en vain.

Merci beaucoup d'avance!

+0

ce que ces chaînes ou horodatages? –

+0

convertissez-les en minutes ou en secondes, effectuez la moyenne mathématique simple et restaurez le format dont vous avez besoin. – Calimero

+0

avez-vous résolu le problème? – VK321

Répondre

1

Je vous recommande fortement de travailler avec timestamps. Ensuite, vous pouvez tout simplement faire ce qui suit:

// Assuming $b and $a as timestamps 
$c = ($b-$a)/2; 
echo date('H:i', $c); 
+0

Donc, vous voulez dire, j'ajoute la valeur de la date à l'heure, la convertis en unix-timestamps, et puis je calc calc, non? Je vais essayer ce compagnon, merci! – Beginner

+0

Il serait préférable d'omettre les chaînes de temps et d'utiliser des horodateurs à la place chaque fois que vous le pouvez. Cela pourrait vous aider: [référence php datetime] (http://php.net/manual/fr/ref.datetime.php). –

0

Je ne code pas quoi que ce soit au cours des 5 dernières années, mais je suis heureux que j'ai pu coder avec l'aide de vous les gars .. ici Voici le code que je cherchais:

<? 
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0"); 
header("Cache-Control: post-check=0, pre-check=0", false); 
header("Pragma: no-cache"); 
?> 

<form action="" method="post"> 
Date-Time 1: <input type="text" name="time1"><br> 
Date-Time 2: <input type="text" name="time2"><br> 
<input type="submit"> 
</form> 


<? 

if (!empty($_POST)) 
{ 

$time1 = $_POST["time1"]; 
$time2 = $_POST["time2"]; 

// echo $time1 . "<br>"; 

$utime1 = strtotime($time1); 
$utime2 = strtotime($time2); 

$temp = $utime2 - $utime1; 
$temp = $temp/2; 

$MidTime = $utime1 + $temp; 


echo "Time 1: " . $time1 . "<br>"; 
echo "Time 2: " . $time2 . "<br><br>"; 

echo "U-Time 1: " . $utime1 . "<br>"; 
echo "U-Time 2: " . $utime2 . "<br><br>"; 

echo "UTime-2 minus UTime-1 in Unix: " . $temp . "<br><br>"; 


echo "Mid Time: " . gmdate("Y-m-d H:i:s ", $MidTime); 

} 


?> 

enter image description here