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

Bibliothèques et frameworks PHP Discussion :

[Développement] Classe Date


Sujet :

Bibliothèques et frameworks PHP

  1. #41
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 73
    Points : 66
    Points
    66
    Par défaut
    ok ben je prend note voilà dejà quelque modif!! Merci pour les félicitations
    et V voir pour les masques tout fait!
    et les nom des fonctions il ya en d'autre à modifier alors genre get NumJourSemaine....

  2. #42
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 73
    Points : 66
    Points
    66
    Par défaut
    Voilà encore une nouvelle version de la classe Date (voir ci dessus)
    fonctionalités ajoutées:
    Fonction de trie de tableau de date

    j'ai essayé une fonction qui donne les jour fériée mais c'est pas encore au point
    pour pâque ça foire
    j'ai éssayé la formule donné à cette page:
    http://www.auduteau.net/calendar/cal2_9_3.shtml

  3. #43
    Membre confirmé Avatar de KibitO
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2004
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2004
    Messages : 616
    Points : 606
    Points
    606
    Par défaut
    chtiboss, ça serait possible d'avoir l'interface de cette classe une fois finie, j'ai la flemme de recopier les entetes des fonctions et les variables

  4. #44
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 73
    Points : 66
    Points
    66
    Par défaut
    Voilà une nouvelle version avec l'erreur de jour fériée corrigée

    Kibito: l'interface c'est à dire sans le code?
    ben pourquoi faire?
    Et puis si tu as la flemme ben moi aussi , le travail est le même pour toi que pour moi, d'autant plus que j'en ai pas besoin moi.

    et si c'est pour avoir une vue d'ensemble de la classe je te conseille d'utiliser PhpDocumentor pour générer la documentation de la classe, étant donnée que j'ai commenté la plupart des méthodes en respectant la syntaxe de PhpDocumentor!

  5. #45
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 73
    Points : 66
    Points
    66
    Par défaut
    voila une nouvelle version!! voir page 3
    et j'ai modifié la syntaxe des pattern pour la
    methode getDateFromPattern()
    et pour setDateFromPattern()
    comme ca la syntaxe est la même que pour la fonction str()
    j'ai commencé à faire des masques tout fait pour les différents types dans les SGBD existant mais les méthodes créer pour y parvenir sont un peu barbare....
    en faite je voulais utiliser une variable de classe un peu comme on le fait en JAVA quand quand il ya plusieur option à une méthode.
    J'ai donc créer une méthode pour faire des variables de classe en php4!!!
    pas mal hein??

    donc l'utilisation donne ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $datetime = '2004-11-26 22:10:14';
     
    $date  =& Date::getdateFromPattern($datetime, Date::staticVar('MYSQL_DATETIME'));
    au lieu de ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $datetime = '2004-11-26 22:10:14';
     
    $date  =& Date::getdateFromPattern($datetime, '%Y%-%M%-%J% %h%:%mn%:%s%');
    à vrai dire je me demande si CT pas plus simple avant?
    Enfin bon si CT en php5 la syntaxe serait un peu plus légère puisque les variable de classe sont permis !

    si quelqu'un pouvais me donner les patern de date pour les autre SGBD ce serait cool postgreSQL au moins!

  6. #46
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Points : 1 206
    Points
    1 206
    Par défaut
    Citation Envoyé par chtiboss
    pour pâque ça foire
    j'ai éssayé la formule donné à cette page:
    PHP a une fonction pour pâques http://php.net/manual/fr/function.easter-date.php
    :q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
    :quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
    Jabber: ripat at im.apinc.org

  7. #47
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut Classe Kijitsu
    J'ai posté il y a quelque temps déjà

    une Classe Kijitsu
    (Kijitsu pour éviter d'éventuels pb avce le mot Date)
    http://www.developpez.net/forums/vie...22164&start=30

    A+JYT

  8. #48
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 73
    Points : 66
    Points
    66
    Par défaut
    il n'y a aucun problème avec lemot date
    J'ai regarder ta classe mais elle ne gère pas les date inférieur à 1970 ou 1980 suivant le système etant donné que tu utilise les fonction time stotime de PHP.
    Il en est de même de la fonction easter_date!
    Donc je pense que ma classe est beaucoup plus complète!
    Ilexise encore des personnes née avant 1970 donc ne serait ce que pour ça on ne peut pas utiliser les fonction de php!
    On peut même clalculer l'age avec ou faire la différence entre deux date ou alors recupérer une date à partir de n'importe quelle forme ......

  9. #49
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    J'ai un problème que je n'arrive pas à corriger.
    J'utilise vos sources (version objet) afin d'arriver à calculer la date du premier jour de la semaine.

    Date::setLanguage('fr');
    $maDate = new Date();
    $maDate =& $maDate->getFirstDayOfWeek();
    $datedeb = $maDate->str('%Y%-%M%-%J%');
    echo $datedeb.'<br>';
    Nous sommes aujourd'hui le dimanche 20 et il me retourne la date du lundi 21 avec le source ci-dessus.

    Comment ça se fait ?

  10. #50
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 73
    Points : 66
    Points
    66
    Par défaut
    ok Xcuse C'est corrigé.

    le code mis en commentaire marche mieux
    Merci de ta remarque!

  11. #51
    Membre régulier

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 161
    Points : 97
    Points
    97
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
       /**   Permet de choisir la langue utilisé pout ecrire une date 
       */ 
       function setLanguage($lang = 'fr') { 
          setlocale(LC_TIME, $lang); 
       }
    Cette fonction ne marche pas toujours suivant que le serveur est configurer que en anglais, ca sort les dates en anglais...
    ya t'il un moyen d'arranger cela?

  12. #52
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 73
    Points : 66
    Points
    66
    Par défaut
    si setLanguage('fr') ne marche pas alors là ben non je vois pas comment faire :

  13. #53
    Membre actif
    Avatar de doof
    Inscrit en
    Août 2003
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 160
    Points : 294
    Points
    294
    Par défaut
    Juste 'fr' c'est juste bon pour windows, 'fr_FR' satisfait les serveurs linux (et win) et pour les systemes BSD, 'fr_FR.ISO8859-1', comme ca, tout le monde est content

  14. #54
    Nouveau membre du Club Avatar de Warz
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 48
    Points : 38
    Points
    38
    Par défaut
    J'HALLUCINE OU QUOI !!! Il n y'a même pas de fonction GetSaisonFromDate !!!!!!!!

    C'est évidemment une blague Cette classe utilitaire est vraimment géniale mais des fonctions du type getJulianDay voir getFerieeOfThisYear m'ont quand même bien poilées

    Du très bon boulot !

  15. #55
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    pour ce qui est des patern
    dans ma classe voici ceux que j'utilise
    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
     
    define('KIJITSU_HOUR',"H:i"); 
     
    define('KIJITSU_ISO_8601',"Ymd\THis"); 
    define('KIJITSU_ISO_8601_MATCH', "/(([0-9]{4})([0-9]{2})([0-9]{2}))T(([0-9]{2})([0-9]{2})([0-9]{2})(Z)?)/"); 
     
    define('KIJITSU_SQL_HOUR',"H:i:s"); 
    define('KIJITSU_SQL_DATE',"Y-m-d");  //MySQL
     
    define('KIJITSU_FRENCH_DATE',"d/m/Y"); 
     
    define('KIJITSU_ENGLISH_DATE',"m/d/Y"); 
    define('KIJITSU_PLAIN_ENGLISH_DATE',"mdY"); 
     
    define('KIJITSU_US_DATE',"Y/m/d"); 
    define('KIJITSU_PLAIN_US_DATE',"Ymd");
    Pour PostGreSQL le format de date dépend de la conf du serveur
    et c'est particulièrement délica car 02-03-05
    c'est le
    2 mars 2005
    3 février 2005
    5 mars 2002
    3 mai 2002

    dans tous ces cas les jour sont 01 à 31 et les mois de 01 à 12
    je n'ais pas complètement regardé ta classe mais je n'ai pas vu coment avoir
    02/03/2005 et 2/3/2005 (avec ou sans les 0)
    %m% pour les numéro de mois mais %mm% ça marche ?

    du coup je ne sais pas encore comeent traduire les paterns ci dessus dans ta syntaxe.
    pourquoi avoir utilisé un syntaxe perso ?
    Citation Envoyé par php doc
    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
    35
    36
    37
    38
    39
    40
    Caractère Description Exemple de valeur 
    Jour  --- --- 
    d  Jour du mois, sur deux chiffres (avec un zéro initial) 01 à 31  
    D  Jour de la semaine, en trois lettres (et en anglais) Mon à Sun  
    j  Jour du mois sans les zéros initiaux 1 à 31  
    l ( L minuscule) Jour de la semaine, textuel, version longue, en anglais Sunday à Saturday  
    S  Suffixe ordinal d'un nombre pour le jour du mois, en anglais, sur deux lettres  st , nd , rd ou th . Fonctionne bien avec j  
    w  Jour de la semaine au format numérique 0 (pour dimanche) à 6 (pour samedi) 
    z  Jour de l'année 0 à 366  
    Semaine  --- --- 
    W  Numéro de semaine dans l'année ISO-8601, les semaines commencent le lundi (ajouté en PHP 4.1.0) Exemple : 42 (la 42ème semaine de l'année) 
    Mois  --- --- 
    F  Mois, textuel, version longue; en anglais, comme January ou December  January à December  
    m  Mois au format numérique, avec zéros initiaux 01 à 12  
    M  Mois, en trois lettres, en anglais Jan à Dec  
    n  Mois sans les zéros initiaux 1 à 12  
    t  Nombre de jours dans le mois 28 à 31  
    Année  --- --- 
    L  Est ce que l'année est bissextile 1 si bissextile, 0 sinon. 
    Y  Année sur 4 chiffres Exemples : 1999 et 2003  
    y  Année sur 2 chiffres Exemples : 99 et 03  
    Heure  --- --- 
    a  Ante meridiem et Post meridiem en minuscules am ou pm  
    A  Ante meridiem et Post meridiem en majuscules AM ou PM  
    B  Heure Internet Swatch 000 à 999  
    g  Heure, au format 12h, sans les zéros initiaux 1 à 12  
    G  Heure, au format 24h, sans les zéros initiaux 0 à 23  
    h  Heure, au format 12h, avec les zéros initiaux 01 à 12  
    H  Heure, au format 24h, avec les zéros initiaux 00 à 23  
    i  Minutes avec les zéros initiaux 00 à 59  
    s  Secondes, avec zéros initiaux 00 à 59  
    Fuseau horaire  --- --- 
    I (i majuscule) L'heure d'été est activée ou pas 1 si oui, 0 sinon. 
    O  Différence d'heures avec l'heure de Greenwich (GMT), exprimée en heures Exemple : +0200  
    T  Fuseau horaire du serveur Exemples : EST , MDT ... 
    Z  Décalage horaire en secondes. Le décalage des zones à l'ouest de la zone UTC est négative, et à l'est, il est positif. -43200 à 43200  
    Date et Heure complète  --- --- 
    c  Date au format ISO 8601 (ajouté en PHP 5) 2004-02-12T15:19:21+00:00 
    r  Format de date RFC 2822 Exemple : Thu, 21 Dec 2000 16:01:07 +0200  
    U  Secondes depuis l'époque Unix (1er Janvier 1970, 0h00 00s GMT)
    me parait plus simple et surtout répendu

    à par ça bravo et merci

    A+JYT
    PS: je vais essayer de faire les paterns à déquats

  16. #56
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    La classe est vraiment super, elle va bien me servir

    Par contre, j'ai un petit soucis, tout marche bien, sauf qd je fais une boucle . Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
             $date_courante = new Date($an, $mois, "01");
    			$fin_mois      = $date_courante->getLastDayOfMonth();
    			while($date_courante <= $fin_mois)
    			{
    				$fin_sem = $date_courante->getLastDayofWeek();
    				$nb_fin_sem = $fin_sem->getNumJourAnne();
    				$nb_date_courante = $date_courante->getNumJourAnne();
    				$colspan = $nb_fin_sem - $nb_date_courante + 1;
    				$fin_sem = $fin_sem->nextDay();
    				$date_courante = $fin_sem;
    				echo("<td colspan=".$colspan.">$colspan</td>");
    			}
    Donc ce code me donne cette erreur :
    Fatal error: Call to a member function on a non-object in [...] on line 75
    La ligne 75 est la première ligne à l'intérrieur de la boucle "$fin_sem = $date_courante->getLastDayofWeek();". J'ai essayé ce code sans la boucle cela marche trés bien.

    Si vous pouviez m'éclairer ca serai sympa

  17. #57
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    J'ai réglé mon problème (cela venait de "$fin_sem = $fin_sem->nextDay();" Merci doof).

    Par contre j'ai remarqué un petit bug, si la date est un dimanche et qu'on applique la fonction getLastDayofWeek(), cela renvoit la date du dimanche suivant.

    En tout cas merci pour la classe, elle est vraiment super

  18. #58
    Membre éclairé
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Points : 790
    Points
    790
    Par défaut
    (peut etre de-post ité ce topic puisque le projet semble tombé aux oubliettes)
    Testez le forum Fire Soft Board, un forum libre, gratuit et français.

    Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.

  19. #59
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 42
    Points : 34
    Points
    34
    Par défaut
    Et ya pas de fonction Qui compte les minutes à partir d'une heure donnée

    Exemple: Le comptage commence à 18h ... eh ben à 19h25 je veux savoir combien de minutes se sont écoulées ... c'ets grave qu'il n'existe pas une telle fonction quand même.

  20. #60
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 42
    Points : 34
    Points
    34
    Par défaut
    Voilà, j'ai bidouillé moi-même du code pour assurer le LIVE sur mon site, donc, ça décompte les minutes écoulées à partir d'une date/heure précise. On peut le customiser pour d'autres sports (ici j'ai mis 45 min pour le foot):

    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
    <?php 
    $mois= 10;
    $jour= 2;
    $an= 2005;
     
    $mois2= 10;
    $jour2= 2;
    $an2= 2005;
     
    $a= date(G);
    $b= date(i);
    $c=date(s);
     
    $timestamp = mktime(18, 0, 0, $mois, $jour, $an);
      $timestamp2 = mktime($a, $b, $c, $mois2, $jour2, $an2);
     
      $diff = floor(($timestamp2 - $timestamp) / (60));
      if (($diff>45) and ($diff<=60)) { $diff='Mi-Temps'; } 
      else { if ($diff<45) { $diff=$diff.' Min';} else {$diff=$diff-15; $diff=$diff.'Min ';}
      if ($diff > 90 ) { $diff='Fin'; }
      }
     
    echo("<font color=white>".$diff."</font>"); ?>

Discussions similaires

  1. Conversion de classe Date vers classe Calendar
    Par Bateau_Ivre dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 21/07/2008, 11h46
  2. la classe date
    Par dimainfo dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 02/07/2007, 09h51
  3. une classe Date standard ?
    Par r0d dans le forum C++
    Réponses: 6
    Dernier message: 29/06/2007, 21h42
  4. classe date générique ?
    Par lili_bzh dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 07/09/2004, 10h59
  5. [Date]Classe Date
    Par kaiser2003 dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 03/09/2004, 09h38

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