Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/08/2011, 10h59   #1
Membre à l'essai
 
Homme francis la grassa
Webmaster
Inscription : avril 2007
Messages : 56
Détails du profil
Informations personnelles :
Nom : Homme francis la grassa
Âge : 49
Localisation : France, Drôme (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster

Informations forums :
Inscription : avril 2007
Messages : 56
Points : 20
Points : 20
Par défaut comparer 2 dates

bonjour à tous,

j'ai des données qui contiennent un champ date de creation (xxxx,xx,xx).
je souhaiterais n'afficher que les plus récentes en les comparant avec une date de reference variable (yyyy,yy,yy).
y'a-t-il une fonction simple qui puisse comparer facilement ces 2 dates ?

merci pour votre réponse
spokito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 11h13   #2
Membre éclairé
 
Avatar de Nowwis
 
Homme
Développeur Web
Inscription : juin 2009
Messages : 363
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 21
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juin 2009
Messages : 363
Points : 365
Points : 365
Bonjour,

Tu as deux solutions :

- Soit t'y vas à la barbare :
T'exploses des dates par le caractère séparateur (/ ou - généralement)
Tu le mets dans le sens : année mois jours
Tu compares tes deux nombres

Exemple :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
$datedebut = 12/08/2008
$datecomparer = 18/08/2011
 
$datedebutexploser = 12    08    2008
$datecomparerexploser = 18   08   2011
 
$datedebutbonordre = 20080812
$datecomparerbonordre = 20110818
 
if($datedebutbonordre > $datecomparerbonordre)
    echo "plus récent";
else
   echo "plus ancien";
- Soit tu fais la méthode classe !
et t'utilises une class (ahaha ^^)
class date ==> google ==> 30sec
Après faut connaitre la POO de PHP un minimum mais tu as juste à appeler une méthode.
Nowwis est déconnecté   Envoyer un message privé Réponse avec citation 12
Vieux 18/08/2011, 11h37   #3
Membre expérimenté
 
Avatar de tigunn
 
Homme
Développeur de bug
Inscription : janvier 2003
Messages : 516
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Développeur de bug

Informations forums :
Inscription : janvier 2003
Messages : 516
Points : 535
Points : 535
Salut,
tu peux passer par un Timestamp ou utiliser la classe DateTime.
En espérant avoir put t'aider
__________________
"le rhume distillation - L’estomac est la cucurbite, le cerveau le chapiteau, & le nez le réfrigérant par lequel s’écoule goutte à goutte le produit de la distillation."
de Avicenne

Le monde se divise en deux: ceux qui utilisent le tag et les autres.

Un problème? venez en découdre!
tigunn est déconnecté   Envoyer un message privé Réponse avec citation 11
Vieux 18/08/2011, 11h44   #4
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 986
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 986
Points : 5 015
Points : 5 015
Voici un exemple d'implémentation avec uasort:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$data = array(
  array('date' =>  '2011-08-01', 'data' => 'donnée 1'),
  array('date' =>  '2011-07-10', 'data' => 'donnée 2'),
  array('date' =>  '2011-08-23', 'data' => 'donnée 3'),
  array('date' =>  '2011-07-02', 'data' => 'donnée 4'),
  array('date' =>  '2011-08-02', 'data' => 'donnée 5'),
);
 
function sort_rows_by_date ($row_a, $row_b) {
  if (!isset($row_a['date'], $row_b['date']))
     return 0;
 
  $date_a = strtotime($row_a['date']);
  $date_b = strtotime($row_b['date']);
 
  if ($date_a == $date_b)
     return 0;
  return $date_a > $date_b ? -1 : 1;
}
 
echo "Tableau avant tri: "; var_dump($data); echo "<hr />";
 
uasort($data, 'sort_rows_by_date');
 
 
echo "Tableau après tri: "; var_dump($data); echo "<hr />";
Bien entendu, si tes données proviennent d'une base de données, il vaut mieux mettre une clause ORDER BY sur le champ date en question.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est actuellement connecté   Envoyer un message privé Réponse avec citation 01
Vieux 18/08/2011, 12h49   #5
Membre à l'essai
 
Homme francis la grassa
Webmaster
Inscription : avril 2007
Messages : 56
Détails du profil
Informations personnelles :
Nom : Homme francis la grassa
Âge : 49
Localisation : France, Drôme (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster

Informations forums :
Inscription : avril 2007
Messages : 56
Points : 20
Points : 20
merci les gars !(et pas que les gars d'ailleurs)
y'a plein de choses différentes, je crois que la barbare fera l'affaire mais j'ai de quoi bricoler au cas ou.

spokito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 14h38   #6
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 986
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 986
Points : 5 015
Points : 5 015
Citation:
(et pas que les gars d'ailleurs)
Comment ça
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est actuellement connecté   Envoyer un message privé Réponse avec citation 01
Vieux 18/08/2011, 15h22   #7
Membre à l'essai
 
Homme francis la grassa
Webmaster
Inscription : avril 2007
Messages : 56
Détails du profil
Informations personnelles :
Nom : Homme francis la grassa
Âge : 49
Localisation : France, Drôme (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster

Informations forums :
Inscription : avril 2007
Messages : 56
Points : 20
Points : 20
salut benjamin ...je pense qu'il y a des benjamines aussi qui codent ?


je fais bien la cuisine moi.....
spokito est déconnecté   Envoyer un message privé Réponse avec citation 01
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h09.


 
 
 
 
Partenaires

Hébergement Web