[PHP] m'expliquer mktime()
Résolu
moderno31
Messages postés
872
Date d'inscription
Statut
Membre
Dernière intervention
-
moderno31 Messages postés 872 Date d'inscription Statut Membre Dernière intervention -
moderno31 Messages postés 872 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
quand je fais
$date1 = "2009-06-24 12:53:25";
$date2 = "2009-06-25 19:09:25";
echo(mktime($date1));
echo "<br />";
echo(mktime($date2));
çà me renvoie la meme valeur (entier long). Pourquoi ?
Il y a quelque chose que je ne fais pas ?
Ce que je cherches à faire, c'est de calculer le nombre de minutes,secondes entre $date2 et^$date1.
Mon schéma en tete est de convertir les 2 date des timestpam, puis de soustraire et de multiplier par 3600.
Là je bute...
Merci
quand je fais
$date1 = "2009-06-24 12:53:25";
$date2 = "2009-06-25 19:09:25";
echo(mktime($date1));
echo "<br />";
echo(mktime($date2));
çà me renvoie la meme valeur (entier long). Pourquoi ?
Il y a quelque chose que je ne fais pas ?
Ce que je cherches à faire, c'est de calculer le nombre de minutes,secondes entre $date2 et^$date1.
Mon schéma en tete est de convertir les 2 date des timestpam, puis de soustraire et de multiplier par 3600.
Là je bute...
Merci
A voir également:
- Mktime php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
6 réponses
Bonjour Moderno,
Je n'ai pas vu dans la doc PHP (https://www.php.net/manual/fr/function.mktime.php que l'on puisse mettrer une date de cette forme en paramètre mktime...
Il faut mettre successivement heure, minutes, secondes, mois, jour, année.
Par contre tu pourrais essayer la fonction date comme tel :
U signifiant le temps depuis UNIX, comme mktime.
Je ne suis pas sûr que ça marche !
A bientôt !
Je n'ai pas vu dans la doc PHP (https://www.php.net/manual/fr/function.mktime.php que l'on puisse mettrer une date de cette forme en paramètre mktime...
Il faut mettre successivement heure, minutes, secondes, mois, jour, année.
Par contre tu pourrais essayer la fonction date comme tel :
$date1 = "2009-06-24 12:53:25"; echo date("U",$date1);
U signifiant le temps depuis UNIX, comme mktime.
Je ne suis pas sûr que ça marche !
A bientôt !
Bonjour.
Comme le dit rd_9, tu n'utilises pas la fonction comme il faut. Comme tes paramètres ne sont pas valides, PHP pas, si je ne me trompe pas, te renvoyer le timestamp courant (paramètres par défaut).
Comme le dit rd_9, tu n'utilises pas la fonction comme il faut. Comme tes paramètres ne sont pas valides, PHP pas, si je ne me trompe pas, te renvoyer le timestamp courant (paramètres par défaut).
echo date("U",$date1);
me renvoie l'année de la date.
Je dois faire quoi pour avoir le nombre de secondes de chaque date ?
J'ai essayé avec strtotime, ça me renvoie pour 2 date différentes la meme chose
$date1 = "2009-06-24 12:53:25";
$date2 = "2009-06-24 13:01:25";
echo strtotime($date1);
echo "<br />";
echo strtotime($date1);
renvoie
1245840805
1245840805
Je vais essayer de corriger ça autrement sinon...
Je pense suivre mon idée de récupérer la date en timestamp et convertir après.
me renvoie l'année de la date.
Je dois faire quoi pour avoir le nombre de secondes de chaque date ?
J'ai essayé avec strtotime, ça me renvoie pour 2 date différentes la meme chose
$date1 = "2009-06-24 12:53:25";
$date2 = "2009-06-24 13:01:25";
echo strtotime($date1);
echo "<br />";
echo strtotime($date1);
renvoie
1245840805
1245840805
Je vais essayer de corriger ça autrement sinon...
Je pense suivre mon idée de récupérer la date en timestamp et convertir après.
bon alors j'ai cojité
zt j'ai réussi ; j'y suis presque. J'ai compris pour mktime !
En fait je fait finalement
$date1 = mktime(13,00,32,10,04,2009);
$date2 = mktime(13,36,09,10,04,2009);
$difference = ($date2-$date1);
echo date('h:i:s',$difference);
Le seule truc c'est qu'il me renvoie 01:35:28
A mon avis il faut enlever 1 à heure mais je vois pas pk il ne me mets pas 0:35:28...
Merci encore de votre aide.
zt j'ai réussi ; j'y suis presque. J'ai compris pour mktime !
En fait je fait finalement
$date1 = mktime(13,00,32,10,04,2009);
$date2 = mktime(13,36,09,10,04,2009);
$difference = ($date2-$date1);
echo date('h:i:s',$difference);
Le seule truc c'est qu'il me renvoie 01:35:28
A mon avis il faut enlever 1 à heure mais je vois pas pk il ne me mets pas 0:35:28...
Merci encore de votre aide.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re-bonjour !
Encore une fois selon la doc, le "h" minuscule de la fonction date, c'est l'heure à format 12 heures, qui va de 01 à 12. Remplace le "h" par "H" ou "G" pour avoir 0.
Il peut quand même y avoir un défaut dans ton code; supposons les deux dates suivantes :
$date1 = mktime(13,00,32,10,04,2009);
$date2 = mktime(13,36,09,11,04,2009);
Dans ton code, la différence sera affiché comme 00:35:28 alors qu'il y aura un jour de différence...
Encore une fois selon la doc, le "h" minuscule de la fonction date, c'est l'heure à format 12 heures, qui va de 01 à 12. Remplace le "h" par "H" ou "G" pour avoir 0.
Il peut quand même y avoir un défaut dans ton code; supposons les deux dates suivantes :
$date1 = mktime(13,00,32,10,04,2009);
$date2 = mktime(13,36,09,11,04,2009);
Dans ton code, la différence sera affiché comme 00:35:28 alors qu'il y aura un jour de différence...