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粉237029457
P粉237029457 2023-09-03 09:22:01
0
1
489
<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>
P粉237029457
P粉237029457

répondre à tous(1)
P粉769413355

Le problème est que vous utilisez la fonction date() sans paramètres, essayez d'utiliser ceci :

$dateTimeNow = date("Y-m-d H:i:s");

function dateTimeShift($dateTimeIn, $lengthNum, $lengthWord) {
    $shifted = date("Y-m-d H:i:s", strtotime($dateTimeIn." + $lengthNum $lengthWord"));
    $difference = strtotime($shifted)-strtotime($dateTimeIn);
    return $shifted . " <br> " . floor($difference/86400) . " days or " . floor($difference/3600) . " hours";
}

echo dateTimeShift($dateTimeNow, "1", "day");

Sortie :

2023-01-04 09:57:31 <br> 1 days or 24 hours
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!