[RESOLU] problème timestamp

Eléphant du PHP | 345 Messages

11 sept. 2024, 16:45

Bonjour,

Je reviens vers vous avec un soucis de timestamp que je ne parviens pas à résoudre.
J'ai d'abord essayé (au plus simple?):
<?php
$heure = date("H:i:s:");
/* On convertit le moment présent en timestamp */
$hts = mktime(date("H"),date("i"),0,date("s"));
/* On crée un timestamp pour l'heure de la sauvegarde */
$debut = mktime(11, 30, 0, date("H"), date("i"), date("s"));
i($hts === $debut)	
{
header('Location:save_14_serveur.php');
exit;
}
?>
mais il ne se passe rien :o

Mammouth du PHP | 2703 Messages

11 sept. 2024, 21:04

l'instruction i existe ?

Eléphant du PHP | 345 Messages

11 sept. 2024, 22:58

Oui, désolé pour la faute de frappe il faut lire if...
<?php
$heure = date("H:i:s:");
/* On convertit le moment présent en timestamp */
$hts = mktime(date("H"),date("i"),0,date("s"));
/* On crée un timestamp pour l'heure de la sauvegarde */
$debut = mktime(11, 30, 0, date("H"), date("i"), date("s"));
if ($hts === $debut)	
{
header('Location:save_14_serveur.php');
exit;
}
?>

Mammouth du PHP | 2703 Messages

11 sept. 2024, 23:37

pour debuger : mettre un else, afficher le contenu de $hts, $debut

Eléphant du PHP | 345 Messages

12 sept. 2024, 11:06

$heure = date("H:i:s:");
/* On convertit le moment présent en timestamp */
$hts = mktime(date("H"),date("i"),0,date("s"));
/* On crée un timestamp pour l'heure de la sauvegarde */
$debut = mktime(11, 30, 0, date("H"), date("i"), date("s"));
if ($hts === $debut)	
{
header('Location:save_14_serveur.php');
exit;
}

else {
	var_dump($hts);
	var_dump($debut);
}
int(1752311100) int(1567683000)

ce ne sont pas les memes valeurs

Mammouth du PHP | 2703 Messages

12 sept. 2024, 16:26

que dit la doc sur chaque paramètre de mktime ?

Eléphant du PHP | 345 Messages

12 sept. 2024, 22:39

$heure = date("H:i:s:");
/* On convertit le moment présent en timestamp */
$hts = mktime(date("H"),date("i"),0,date("s"));
/* On crée un timestamp pour l'heure de la sauvegarde */
$debut = mktime(11, 30, 0, date("H"), date("i"), date("s"));
$fin = mktime(11, 35, 0, date("H"), date("i"), date("s"));
if (($hts > $debut) && ($hts  < $fin))
{
header('Location:save_14_serveur.php');
exit;
}
Ca me semble un peu mieux

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

13 sept. 2024, 00:18

Si tu veux le timestamp courant, le plus simple est d'utiliser la fonction time() sans paramètre.
Si tu veux utiliser mktime, vérifie que tu passes les bons paramètres :
https://www.php.net/manual/fr/function.mktime.php
Quand tout le reste a échoué, lisez le mode d'emploi...