IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Dates] tri sur les dates


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [Dates] tri sur les dates
    j'essaie de trier les données sur une base entre 2 dates.
    la date est de la forme :
    "Jul 4 2006 7:30PM",

    comment faire ?

  2. #2
    Membre expérimenté
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    Par défaut
    Convertir en timestamp et comparer ?
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci si tu peux m en dire plus, en fait sur le code ci dessous,(requete SQL) c est le champs "QcreatedOn" qui est une date au format indique plus haut.
    ps: c'est une base (sql)--> commande = mssql_connect

    et donc je veux creer une requete sql qui affiche les valeur entre 2 date.
    merci de ton aide


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    27
    28
    29
    30
    31
    32
    33
    34
    <?php
    //connection au serveur
     
    $c=mssql_connect('10.888.525.55','oi','gpoioiu');
    $d=mssql_select_db('GPS_LILLE');
    $req = "select QId,QCustomerContactId,QCreatedOn,TInChargeDisplayName,TProductDescription,TQuestion1,TQuestion2 from vBLLoggedInquiry2 where T2Field5='F:-1' ORDER BY QId DESC";
    $res = mssql_query($req);
     
     
     
    	echo '<table width=100% cellpading=0 cellspacing=0 border=1>';
    	echo'<tr>
    	<td>QId</td>
    	<td>QCustomerContactId</td>
    	<td>QCreatedOn</td>
    	<td>TInChargeDisplayName</td>
    	<td>TProductDescription</td>
    	<td>TQuestion1</td>
    	</tr>';
     
    	while ($row = mssql_fetch_row($res))
    	{
    	echo '<tr>';	
     	echo '<td>'.$row[0].'</td>';
    	echo '<td>'.$row[1].'</td>';	
    	echo '<td>'.$row[2].'</td>';
    	echo '<td>'.$row[3].'</td>';
    	echo '<td>'.$row[4].'</td>';
     	echo '<td>'.$row[5].'</td>';
     
    	echo '</tr>';	}
    	echo '</table>';
     
    ?>

  4. #4
    Membre expérimenté
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    Par défaut
    Partant de ce postulat "Jul 4 2006 7:30PM"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $tab_month = array('Jan' => 01, 'Feb'=>02, etc etc);
    $tmp = "Jul 4 2006 7:30PM";
    list($m,$d,$a) = explode(' ', $tmp);
     
    $m = $tab_mont[$m];
     
    $mon_timestamp = mktime( 0, 0, 0, $m, $d, $a );
    A partir de là tu peux appliquer plein de fonctions sympa sur les dates avec ton timestamp ainsi créé du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    /*************
     CALCUL DUREE  $d_fin-$d_deb = ?
    *************/
    /** 
    * Calcule la durée entre 2 dates en jours
    * @param $d_deb Date début
    * @param $d_fin Date fin
    * @return La durée entre les 2 dates, sinon 0 si $d_fin < $d_deb
    */
    function calcul_duree($d_deb, $d_fin)
    {
    	list($d,$m,$a) = explode('/',$d_deb);
    	$deb = mktime( 0, 0, 0, $m, $d, $a );
    	list($d,$m,$a) = explode('/',$d_fin);
    	$fin = mktime( 0, 0, 0, $m, $d, $a );
     
    	$d = ceil(($fin - $deb) / (3600 * 24)); 
    	if ($d <0) return 0; else return $d; 
    }
    Note que dans ma fonction je recrée le timestamp mais bon c'est parceque mes params de la fonction ne sont pas des timestamp
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  5. #5
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Citation Envoyé par udta5371
    j'essaie de trier les données sur une base entre 2 dates.
    J'ai pas compris.

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    Et un truc dans ce style là (retourne le timestamp de la date) ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
     
     
    function DoTime($min, $hr, $month, $day, $year)
    {
         $tab_mois = array("Jan" => 1, "Feb" => 2, etc...)// 
         return mktime(0, $min, $hr, $tab_mois[$month], $day, $year);
    }
     
    $chaine = "Jul 4 2006 7:30PM";
    preg_replace("#(Jan|Feb|Mar|etc...) ([0-9]*?) ([0-9]*4) ([0-9]*?):([0-9]*?)PM#is", $chaine, DoTime('\\1', '\\2', '\\3', '\\4', '\\5', '\\6'));
    C'est non testé, et les [0-9]*? sont a remplacé par un truc qui limite le masque a 2 chiffres (je sais plus comment on fait, je debute en preg).

    Avec àa, tu obtient un timestamp, donc rien de plus facile a trier !
    Si vous avez un message d'erreur, n'oubliez pas de le lire, la réponse à votre problème est surement dedans !

Discussions similaires

  1. [BATCH] Tri sur les dates de fichiers
    Par tonf dans le forum Windows
    Réponses: 1
    Dernier message: 26/04/2007, 17h25
  2. [MySQL] Tri sur les dates
    Par urbalk dans le forum PHP & Base de données
    Réponses: 33
    Dernier message: 21/03/2007, 23h01
  3. Problème de tri sur les dates par année puis mois
    Par rob2-9 dans le forum Access
    Réponses: 26
    Dernier message: 11/08/2006, 12h04
  4. Tri sur les dates
    Par ShadoX dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 08/06/2006, 12h58
  5. Réponses: 12
    Dernier message: 31/03/2006, 21h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo