logo

NPDS : Gestion de contenu et de communauté


Content & Community Management System (CCMS) robuste, sécurisé, complet, performant, parlant vraiment français, libre (Open-Source) et gratuit.
16 visiteur(s) et 0 membre(s) en ligne.
Activité du Site

Pages vues depuis 25/05/2001 : 109 364 310

  • Nb. de membres 8 695
  • Nb. d'articles 1 695
  • Nb. de forums 26
  • Nb. de sujets 8
  • Nb. de critiques 92

Top 10  Statistiques

Index du forum »»  Le coin des codeurs »» Calcul de dates

Calcul de dates#6156

3Contributeur(s)
AnonymeTribal-Dolphingilbau
3 Modérateur(s)
developpeurjpbJireck
Anonyme Anonymeicon_post
Salut !
Comment peut-on faire des calculs et des comparaisons sur les dates ?
ex : je veux faire une requete ou je selectionne des articles ayant moins d'un mois.
select .... where 'date(Y-m-d)'<=date+30jours ; ?
(Je sais que c'est faux, c'est juste pour que vous compreniez ce que je veux faire).
Merci d'avance.... :=!
Tribal-Dolphin Tribal-Dolphinicon_post
- Convertir les dates en Tampon UNIX TIMESTAMP
- Calculer la valeur pour 30 jours (en clair => 30 jours en secondes)
- Après c'est des math !!
:-D
Anonyme Anonymeicon_post
Une fois de plus MERCI Tribal-Dolphin :=!
Anonyme Anonymeicon_post
Donc, si j'ai bien compris, pour exprimer la condition : "date de moins d'un mois"
ça se traduit :
mktime(0,0,0,substr(date,8,2),substr(date,5,2),substr(date,0,4))>=(time()-2592000) :-o
Pfff...! ils auraient pu faire qque chose de plus pratique qd-mm

Anonyme Anonymeicon_post
sniff.... :-(
En plus ça passe pas dans une requete...
Il existe pas une fonction inverse à mktime(), c.a.d. qui reçoit un tampon UNIX et qui renvoie une date avec un format valide pour MySql ?
Tribal-Dolphin Tribal-Dolphinicon_post
fait ton calcule en dehors de la requete !!

$time = mktime(0,0,0,substr(date,8,2),substr(date,5,2),substr(date,0,4));
$past = time()-2592000;

$mytime = $time - $past;

et tu met le $mytime dans ta requette
Anonyme Anonymeicon_post
Oui mais mytime est un tampon Unix
Je peux comparer une date mysql et un tampon ???
Tribal-Dolphin Tribal-Dolphinicon_post
ben change ton champs en tampon.
Ou alors récupére la date et convertis en tampon.

Ou encore, et je pense que c le plus efficace car évite les erreurs => Tu récup la date du jour en tampon - les 1 mois en tampon et tu converti en date SQL et ensuite, tu fait ta comparaison dans Mysql.

A mon avis, cette dernière solution et la meilleurs car elle évite des "absurditées" comme le 30 Fevrier ou le 31 Avril ........
Anonyme Anonymeicon_post
Je suis tout à fait d'accord, ça serait la meilleure solution, mais comment faire pour convertir un tampon en date SQL ?
Est-ce qu'il existe une fonction ?
Anonyme Anonymeicon_post
Désolé, question bête ... :-D
Je viens de voir qu'il suffit de faire :
date("Y-m-d H:i:s", $timestamp);
Tribal-Dolphin Tribal-Dolphinicon_post
Tout compris :-D
gilbau gilbauicon_post
Citation : Tribal-Dolphin 

- Convertir les dates en Tampon UNIX TIMESTAMP

- Calculer la valeur pour 30 jours (en clair => 30 jours en secondes)

- Après c'est des math !!

:-D  
Merci je cherchais comment convertir les dates de la base de données en format plus lisible , voir aussi le site pour une conversion avec formule excel :

Extrait :
Comment convertir un timestamp « Unix epoch » en date et heure, avec Excel :
Dans la cellule A1, entrons un timestamp, par exemple 1493576205. Dans la cellule B1, entrons la formule =ENT(((A1/60)/60)/24)+DATE(1970;1;1). C'est tout.
https://assiste.com/Excel/Excel_Convertir_un_timestanp_en_date_et_heure.html#:~:text=Comment%20convertir%20un%20timestamp%20%C2%AB%20Unix,C'est%20tout.