Page 1 sur 2

Calcul de secondes entre des dates

Posté : 30 sept. 2005, 23:37
par X_a_v_i_e_r
Bonsoir,

J'ai un problème : je voudrais savoir comment faire pour que, lorsque que 2 dates sont uploadées sur le serveurs, comment faire pour calculer la différence, en secondes entre les deux dates ?

Merci de répondre rapidement, c'est cré cré cré pressé... :oops:

Bonne soirée

Posté : 30 sept. 2005, 23:41
par Cyrano
N'oublie jamais que c'est pressé... pour toi !

Transforme tes dates en timestamp avec variant_date_to_timestamp() et calcule la différence. Le timestamp UNIX est un nombre de secondes écoulées depuis le 1er janvier 1970.

Posté : 01 oct. 2005, 00:04
par X_a_v_i_e_r
Merci :wink: je sais, c'est relatif, mais là, je suis cuit si je fais pas ça avant demain.

Merci ;)

Posté : 01 oct. 2005, 00:08
par Cyrano
Tu n'oublieras pas pour autant le résolu si ça fonctionne. :)

Posté : 01 oct. 2005, 00:44
par X_a_v_i_e_r
Bah euh, j'ai un doute :

Sur ma base de donnée, je dois créé 4 colonnes en tout 2 contenant les dates en format "normal", et 2 autres en timestamp ?

Merci

Posté : 01 oct. 2005, 00:50
par Cyrano
Pour quoi faire ? tu n'as besoin que ponctuellement d'un écart entre deux dates en secondes: comme c'est un champ calculé, tu n'as pas besoin de le mettre dans la base. Quand aux timestamps, tu n'as pas nécessairement besoin de les enregistrer s'ils ne te servent qu'à cette seule occasion: si tu as besoin des dates par ailleurs, elles sont plus faciles à manipuler qu'un timestamp.

Mais comme je ne sais pas eaxctement ce que fait ton application, difficile de te donner l'heure juste :-k

Posté : 01 oct. 2005, 00:52
par X_a_v_i_e_r
Je vais donc dire ça plus clairement :

je souhaite calculer le nombre de secondes entre deux connexions d'un membre... je peux faire directement timestamp ?

Merci

Posté : 01 oct. 2005, 00:55
par DocType
Bah euh, j'ai un doute :

Sur ma base de donnée, je dois créé 4 colonnes en tout 2 contenant les dates en format "normal", et 2 autres en timestamp ?

Merci
lol
http://www.nexen.net/docs/php/annotee/f ... mktime.php

Posté : 01 oct. 2005, 00:57
par X_a_v_i_e_r
Oui, mais avec ta fonction, ça veut pas dire qu'il faudrait que je connaisse la date de reconnexion sur et certaine du membre ? ou alors je comprends pas comment elle marche :oops:

Posté : 01 oct. 2005, 00:59
par DocType
Je vais donc dire ça plus clairement :

je souhaite calculer le nombre de secondes entre deux connexions d'un membre... je peux faire directement timestamp ?

Merci
oui, c le mieux je pense :wink:
De plus, à partir du timestamp tu peux retrouver une date
$dc= "Dernière connexion le".date("d-m-Y \à G:i",$secondes_derniere_connexion);

Posté : 01 oct. 2005, 01:01
par X_a_v_i_e_r
Euh, dans ton bout de code, je ne vois pas où on parle de la session du membre :s

Posté : 01 oct. 2005, 01:03
par DocType
Oui, mais avec ta fonction, ça veut pas dire qu'il faudrait que je connaisse la date de reconnexion sur et certaine du membre ? ou alors je comprends pas comment elle marche :oops:
ba en fait soit tu insères la date de dernière connexion du membre en timestamp UNIX en BDD: La c'ests imple, tu compares l'heure actuelle à la dernière connexion, tu prends le soin de tout mettre en variable de session comme ca la derniere connexion au compte est mise a jour des la reconnexion du membre et tu conserve ta variable.
soit tu insères en format datetime, la c la meme chose (une seule insertion, comparaison par rapport a lheure actuelle et variables session). Seulement, tu ne traite plus un nombre de seconde smais un timestamp.

Je te conseille la premiere solution qui te permet de manipuler tous les formats simplement :wink:

Posté : 01 oct. 2005, 01:05
par DocType
Euh, dans ton bout de code, je ne vois pas où on parle de la session du membre :s
Nulm part, je vais pas te servir non plus le menu un script sur commande. C'est pas le Mac do :wink:
Je te montre la possibilité d'afficher la dernière connexion du membre en texte juste en ayant préalablement recuperé son timestamp de derniere connexion en bdd. A toi de faire le reste ensuite :wink:

Posté : 01 oct. 2005, 01:05
par X_a_v_i_e_r
Je sais pas, je dois être dans le paté à cette heure ci, mais j'ai absolument rien compris de ce qu'il me faut faire :s

Posté : 01 oct. 2005, 01:10
par Cyrano
L'idée a du bon : quand l'internaute se connecte, tu crée un timestamp instantané. Tu fais ensuite une recherche dans la base de sa dernière connexion et tu fais le calcul avec ça de la différence entre l'ancienne connexion et l'actuelle. ensuite, tu peux enregistrer cette différence quelque part pour des besoins statistiques et tu mets à jour le timestamp enregistré dans la base. Résultat des courses, tu n'as besoin que d'un seul champ dans la base pour le timestamp que tu transforme en date pour le mettre dans la base au format DATE parce que le TIMESTAMP UNIX et le TIMESTAMP SQL ne sont pas les mêmes et le second est une simple concaténation des éléments composant une date au lieu d'un nombre de secondes..