Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1527 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Compter un nombre de jours en timestamp

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Compter un nombre de jours en timestamp

n°1292875
pouzy
Ne signe pas d'autographes..
Posté le 26-01-2006 à 17:04:49  profilanswer
 

Bonjour à tous !
Voilà, j'enregistre la dernière connexion de mon visiteur en timestamp, en enregistrant time();
Donc, à sa connexion suivante, je veux calculer le nombre de jours où il a été absent !  
Je sais que je peux faire :
 

Code :
  1. $jours = round((time()-$derniereconnex)/(24*3600));


 
Ou un truc dans le genre.  
Mais le problème, avec ça, c'est que ça compte 24 heures, et pas le jour
Je m'explique : Je veux que si le visiteur se connecte le 1er janvier à 18h00, et qu'il revienne le lendemain a 07h00, il y a ait quand même un jour de compté ! ( La, comme on aura $jour < 1, ça ne fonctionnera pas.. )
 
J'espère avoir été clair, et merci d'avance de votre aide :)


---------------
Hello hello super jello
mood
Publicité
Posté le 26-01-2006 à 17:04:49  profilanswer
 

n°1292882
omega2
Posté le 26-01-2006 à 17:12:22  profilanswer
 

Est ce que t'as consulté la partie de la documentation sur les dates et heures? Il y a tout ce qu'il faut pour faire des comparaisons de dates et autres manipulations du genre.

n°1292885
pouzy
Ne signe pas d'autographes..
Posté le 26-01-2006 à 17:17:02  profilanswer
 

Tu parles d'une doc' dans le forum HFR ou sur php.net ?
parce que sur php, oui, je peux obtenir les jours via date()
par exemple :
 

Code :
  1. date('d')-date('d', $derniereco)


 
Ok, ca va me retourner les différents jours.. Mais si par exemple la derniere connexion date du 31 janvier, et que il se reconnecte le 1er févrire, ca fera 31-1 = 30 jours de connexion !
c'est ça que je pige pas trop :/


---------------
Hello hello super jello
n°1292898
omega2
Posté le 26-01-2006 à 17:34:23  profilanswer
 

là, tu as pris le jour sans tenir compte du mois ni de l'année.
C'est marrant, j'étais sur qu'il y avait des fonctions faites pour ça.
 
 
Bon, une solution en utilisant les fonctions de dates :

  • utiliser getdate pour obtenir un tableau contenant les dates et heures avec chaque élément séparé
  • utiliser mktime pour retomber sur une date au format timestamp en faisant bien attention de mettre des 0 à la place de l'heure des minutes et des secondes. Ca te retournera des dates plus facile à manipuler
  • faire la soustraction des deux dates obtenu
  • diviser par 24*3600

n°1292906
m3z
il faut toujours faire simple
Posté le 26-01-2006 à 17:45:19  profilanswer
 

$derniereconnex=strtotime(date(DATE_RFC822))
 
quelque temps plus tard ...
 
$jour=date('z', strtotime(date(DATE_RFC822), $derniereconnex));
 
 
Pas tester donc à vérifier  
 
A+
 
 
 
 

n°1292908
omega2
Posté le 26-01-2006 à 17:50:12  profilanswer
 

Ca fait quoi date() avec trois paramettres?

n°1292914
pouzy
Ne signe pas d'autographes..
Posté le 26-01-2006 à 17:53:02  profilanswer
 

J'ai pas vraiment compris tes fonctions, m3z ?
La $derniereconnex doit être récupérée dans la BDD, qu'est-ce dont que le "DATE_RFC822" ?
 
Ha ! Merci pour le z, j'avais pourtant épluché tout php.net/date..  
Donc, pour les mois c'est réglé, mais pour les changements d'année ? :s


---------------
Hello hello super jello
n°1292918
m3z
il faut toujours faire simple
Posté le 26-01-2006 à 18:01:32  profilanswer
 

pouzy a écrit :

J'ai pas vraiment compris tes fonctions, m3z ?
La $derniereconnex doit être récupérée dans la BDD, qu'est-ce dont que le "DATE_RFC822" ?
 
Ha ! Merci pour le z, j'avais pourtant épluché tout php.net/date..  
Donc, pour les mois c'est réglé, mais pour les changements d'année ? :s


 
Oui le $derniereconnex est récupérer de la BDD mais avant faut l'écrire avec strtotime(date(DATE_RFC822)).
Le DATE_RFC822 c'est pour avoir un format compatbile avec le strtotime.
Pour les annees tu veux vraiment ?  
ben tu fait un test supplementaire mais avec 'y' =>
$annee=date('y', strtotime(date(DATE_RFC822), $derniereconnex));  
 
A+

n°1853887
cccm62
Posté le 22-02-2009 à 11:40:24  profilanswer
 

Citation :

Mais le problème, avec ça, c'est que ça compte 24 heures, et pas le jour[...]
La, comme on aura $jour < 1, ça ne fonctionnera pas..


 
Ca a l'air assez vieux mais si ça peut aider qq'un d'autre: voir peut-être du côté de la fonction ceil pour arrondir le résultat au nombre supérieur:
 

Code :
  1. $jours = ceil((time()-$derniereconnex)/(24*3600));


 
Cédric


Message édité par cccm62 le 22-02-2009 à 11:43:14

---------------
Mes sites sur la création de sites et la finance - comptabilité
n°1854141
rufo
Pas me confondre avec Lycos!
Posté le 23-02-2009 à 14:09:58  profilanswer
 

Si tu n'as toujours pas résolu ton pb, tu peux récupérer dans l'application Astres (cf ma signature) le fichier DateTimeLibrary.php situé dans le répertoire /Astres/Common/. J'ai codé la fonction getNbDaysBetween2Dates() qui donne le nb de jours séparant 2 dates (timestamp) en jours ouvrés ou ouvrables ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Compter un nombre de jours en timestamp

 

Sujets relatifs
[C#]Nombre dans une stringnombre de lignes d'un textbox en VB6
compter le nombre de fichier dans une tableConcours de programmation : Prologin 2006 (derniers jours)
Fonction FormulaR1C1 qu ine marche pas tout les jours[Excel] Compter le nombre de cellule non vide d'une colonne
[RESOLU]Compter le nombre de ligne d'un fichier 
Plus de sujets relatifs à : Compter un nombre de jours en timestamp


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR