Prob de date
Résolu
Hight91
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
jeremy.s Messages postés 1226 Date d'inscription Statut Membre Dernière intervention -
jeremy.s Messages postés 1226 Date d'inscription Statut Membre Dernière intervention -
voila mon code
<?php
$h1 = strtotime('2013-06-15 04:30:00');
$h2 = strtotime("06:00:00");
echo ''.$h1.' <br>';
echo ''.$h2.' <br>';
echo gmdate('Y m d H:i',$h1-$h2) ;
?>
cela m'affiche :1970 02 06 22:30
alors que moi je veux ca : 2013-06-14 22:30
pouvez vous m aider ?
<?php
$h1 = strtotime('2013-06-15 04:30:00');
$h2 = strtotime("06:00:00");
echo ''.$h1.' <br>';
echo ''.$h2.' <br>';
echo gmdate('Y m d H:i',$h1-$h2) ;
?>
cela m'affiche :1970 02 06 22:30
alors que moi je veux ca : 2013-06-14 22:30
pouvez vous m aider ?
A voir également:
- Prob de date
- Airpods 3 date de sortie - Guide
- Office 2024 date de sortie - Accueil - Bureautique
- Samsung a33 date de sortie - Guide
- Jm date désabonnement - Forum Gmail
- Nombre de jours entre deux dates excel - Guide
3 réponses
Bonjour,
En faite, $h2 correspond à la date actuelle à 6h et non au 1er janvier 1970 à 6h.
Essaye ça :
Cordialement,
Gigatrappeur
En faite, $h2 correspond à la date actuelle à 6h et non au 1er janvier 1970 à 6h.
Essaye ça :
<?php $h1 = strtotime('2013-06-15 04:30:00'); $h2 = strtotime("06:00:00"); $h3 = strtotime("1970-01-01 06:00:00"); echo '$h1 = '.$h1.' --> '.gmdate('Y m d H:i',$h1).' <br />'; echo '$h2 = '.$h2.' --> '.gmdate('Y m d H:i',$h2).'<br />'; echo '$h3 = '.$h3.' --> '.gmdate('Y m d H:i',$h3).'<br />'; echo '$h1 - $h2 = '.($h1-$h2).' --> '.gmdate('Y m d H:i',$h1-$h2).'<br />'; echo '$h1 - $h3 = '.($h1-$h3).' --> '.gmdate('Y m d H:i',$h1-$h3).'<br />'; ?>
Cordialement,
Gigatrappeur
Salut !
Si tu veux simplement soustraire une période à une date, tu peux utilisé l'objet DateTime :
https://www.php.net/manual/fr/class.datetime.php
Et la fonction sub :
https://www.php.net/manual/fr/datetime.sub.php
Donc :
$h1 = new DateTime('2013-06-15 04:30:00');
$h2 = $h1->sub(new DateInterval('P6H'));
echo $h1->format('d-m-Y H:i');
echo $h2->format('d-m-Y H:i');
Si tu veux simplement soustraire une période à une date, tu peux utilisé l'objet DateTime :
https://www.php.net/manual/fr/class.datetime.php
Et la fonction sub :
https://www.php.net/manual/fr/datetime.sub.php
Donc :
$h1 = new DateTime('2013-06-15 04:30:00');
$h2 = $h1->sub(new DateInterval('P6H'));
echo $h1->format('d-m-Y H:i');
echo $h2->format('d-m-Y H:i');
merci de vos réponse mais j ai pas la solution
gigatrappeur
$h1 - $h3 = 1371245400 --> 2013 06 14 21:30
il m enlève 7 h ou lieu de 6 :(
pour jeremy
le prob c est l heure a enlever n est pas toujours la même
j ai pris 6:00:00 pour exemple mais çà peut être 1:42:50 donc ça risque d être galère pour placer la variable
gigatrappeur
$h1 - $h3 = 1371245400 --> 2013 06 14 21:30
il m enlève 7 h ou lieu de 6 :(
pour jeremy
le prob c est l heure a enlever n est pas toujours la même
j ai pris 6:00:00 pour exemple mais çà peut être 1:42:50 donc ça risque d être galère pour placer la variable
C'est pas spécialement un problème, tu te fais une fonction qui prend $h $m $s en parametre.
fonction soustrait_date(DateTime $date, $h, $m,$s
{
$res = $date
if($h > 0) res = res->sub(new DateInterval('P'.$h.'H');
if($m > 0) $res = res->sub(new DateInterval('P'.$m.'M');
if($s > 0) $res = res->sub(new DateInterval('P'.$s.'S'); // A vérifier pour les formats minutes et secondes
return $res
}
fonction soustrait_date(DateTime $date, $h, $m,$s
{
$res = $date
if($h > 0) res = res->sub(new DateInterval('P'.$h.'H');
if($m > 0) $res = res->sub(new DateInterval('P'.$m.'M');
if($s > 0) $res = res->sub(new DateInterval('P'.$s.'S'); // A vérifier pour les formats minutes et secondes
return $res
}