Des résultats imprévus se produisent lors du calcul du décalage horaire en secondes en PHP en convertissant deux dates en horodatages Unix.
<p>Comme dans le titre, j'essaie de trouver la différence en secondes, puis de convertir ces secondes en jours et en heures. </p>
<p>Après avoir lu et suivi des questions similaires, j'ai créé une fonction qui ajoute l'heure, le jour, la semaine, le mois ou l'année que je souhaite à la date/heure d'aujourd'hui, et j'obtiens les résultats corrects de cette partie. </p>
<p> Cependant, j'ai ensuite essayé de convertir les deux dates (date de début et date de déplacement) en horodatages Unix, en soustrayant les deux horodatages pour trouver la différence entre les deux dates en secondes, puis en convertissant, je n'obtiens pas les résultats attendus. pendant des jours ou des minutes (/86400 et /3600). </p>
<p>Voici le code..</p>
<pre class="brush:php;toolbar:false;"><?php
$dateTimeNow = date();
fonction dateTimeShift($dateTimeIn, $lengthNum, $lengthWord) {
$shifted = date("Y-m-d H:i:s", strtotime($dateTimeIn." + $lengthNum $lengthWord"));
$différence = strtotime($shifted)-strtotime($dateTimeIn);
return $shifted <br> plancher($différence/86400) .
}
echo dateTimeShift($dateTimeNow, "1", "jour");
?>≪/pré>
<p>Le résultat actuel est...</p>
<blockquote>
<p>2023-01-04 09:37:51> 19361 jours ou 464673 heures</p>
</blockquote>
<p>Je m'attendais à ce que ce soit comme ça</p>
<blockquote>
<p>2023-01-04 09:37:51 > 1 jour ou 24 heures</p>
</blockquote></p>