J'ai un problème avec les dates.
J'ai besoin d'ajouter la logique if-else pour afficher un contenu différent.
Il est basé sur les valeurs date_diff
. Et voici un problème:
Je dois afficher le bouton si la date du jour - date post_modifiée> = 3 heures et si la différence est inférieure à 3 heures - affiche le message par défaut: "Attendez x minutes avant d'utiliser le bouton".
Voici mes efforts:
<?php
$now = new DateTime();
$currentDateTime = $now->getTimestamp();
$postUpdated = $post->post_modified;
if ($currentDateTime - $postUpdated >= 1) :
?>
<button>Some value</button>
<?php else: ?>
<p>Wait, please</p>
<?php endif; ?>
J'espère que vous pouvez m'aider. Je vous remercie.
Vous pouvez utiliser strtotime()
pour convertir l'heure en un entier, puis effectuer une opération conditionnelle.
// Get the current time
$now = strtotime("now");
// Convert post's modification time to int
$postUpdated = strtotime( $post->post_modified );
// Check if 3 hours has passed, each hour is 60*60 seconds
if ( $now - $postUpdated >= 3*60*60 ) {
// First conditional
} else {
// Second conditional
}
De même, si le format de l'heure est connu (généralement 0000-00-00 00:00:00), vous pouvez directement utiliser strftime()
. Voici un exemple rapide:
$timestamp = strftime("%Y-%m-%d %h:%M:%S %a", time() - 3*60*60);
Vous avez maintenant une valeur formatée de 3 heures à l'avance, que vous pouvez utiliser dans date_diff()
.