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 :

problème sur une fonction date


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Par défaut problème sur une fonction date
    Bonjour,
    mon problème de serveur n'est toujours pas résolu (je ne suis pas chez moi).

    Comme je n'ai pas trouvé ce qui me convient, j'essaie de faire un calendrier.
    Tout se passe bien jusqu'au 19/01/2038.
    Ensuite le jour de la semaine est toujours un jeudi !! Et ça fiche le bazar dans l'affichage de mon calendrier

    J'ai donc laissé tombé pour le moment.
    Le code de ce que j'ai testé
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
     
    <?php
    echo 'test le jour du 01/01/2038 &nbsp;';
     echo $date = date('01/01/2038');?> &nbsp;<?php
    // tableau des jours de la semaine
    $joursem = array('dim', 'lun', 'mar', 'mer', 'jeu', 'ven', 'sam');
    // extraction des jour, mois, an de la date
    list($jour, $mois, $annee) = explode('/', $date);
    // calcul du timestamp
    $timestamp = mktime (0, 0, 0, $mois, $jour, $annee);
    // affichage du jour de la semaine
    echo $joursem[date("w",$timestamp)];
     
    echo '<br>test le jour du 15/01/2038 &nbsp;';
     echo $date = date('15/01/2038');?> &nbsp;<?php
    // tableau des jours de la semaine
    $joursem = array('dim', 'lun', 'mar', 'mer', 'jeu', 'ven', 'sam');
    // extraction des jour, mois, an de la date
    list($jour, $mois, $annee) = explode('/', $date);
    // calcul du timestamp
    $timestamp = mktime (0, 0, 0, $mois, $jour, $annee);
    // affichage du jour de la semaine
    echo $joursem[date("w",$timestamp)];
     
    echo '<br>test le jour du 18/01/2038 &nbsp;';
     echo $date = date('18/01/2038');?> &nbsp;<?php
    // tableau des jours de la semaine
    $joursem = array('dim', 'lun', 'mar', 'mer', 'jeu', 'ven', 'sam');
    // extraction des jour, mois, an de la date
    list($jour, $mois, $annee) = explode('/', $date);
    // calcul du timestamp
    $timestamp = mktime (0, 0, 0, $mois, $jour, $annee);
    // affichage du jour de la semaine
    echo $joursem[date("w",$timestamp)];
     
    echo '<br>test le jour du 19/01/2038 &nbsp;';
     echo $date = date('19/01/2038');?> &nbsp;<?php
    // tableau des jours de la semaine
    $joursem = array('dim', 'lun', 'mar', 'mer', 'jeu', 'ven', 'sam');
    // extraction des jour, mois, an de la date
    list($jour, $mois, $annee) = explode('/', $date);
    // calcul du timestamp
    $timestamp = mktime (0, 0, 0, $mois, $jour, $annee);
    // affichage du jour de la semaine
    echo $joursem[date("w",$timestamp)];
     
    echo '<br>test le jour du 20/01/2038 &nbsp;';
     echo $date = date('20/01/2038');?> &nbsp;<?php
    // tableau des jours de la semaine
    $joursem = array('dim', 'lun', 'mar', 'mer', 'jeu', 'ven', 'sam');
    // extraction des jour, mois, an de la date
    list($jour, $mois, $annee) = explode('/', $date);
    // calcul du timestamp
    $timestamp = mktime (0, 0, 0, $mois, $jour, $annee);
    // affichage du jour de la semaine
    echo $joursem[date("w",$timestamp)];
     
    echo '<br>test le jour du 21/01/2038 &nbsp;';
     echo $date = date('21/01/2038');?> &nbsp;<?php
    // tableau des jours de la semaine
    $joursem = array('dim', 'lun', 'mar', 'mer', 'jeu', 'ven', 'sam');
    // extraction des jour, mois, an de la date
    list($jour, $mois, $annee) = explode('/', $date);
    // calcul du timestamp
    $timestamp = mktime (0, 0, 0, $mois, $jour, $annee);
    // affichage du jour de la semaine
    echo $joursem[date("w",$timestamp)];
     
    echo '<br>test le jour du 22/01/2038 &nbsp;';
     echo $date = date('22/01/2038');?> &nbsp;<?php
    // tableau des jours de la semaine
    $joursem = array('dim', 'lun', 'mar', 'mer', 'jeu', 'ven', 'sam');
    // extraction des jour, mois, an de la date
    list($jour, $mois, $annee) = explode('/', $date);
    // calcul du timestamp
    $timestamp = mktime (0, 0, 0, $mois, $jour, $annee);
    // affichage du jour de la semaine
    echo $joursem[date("w",$timestamp)];
     
    echo '<br>test le jour du 23/01/2038 &nbsp;';
     echo $date = date('23/01/2038');?> &nbsp;<?php
    // tableau des jours de la semaine
    $joursem = array('dim', 'lun', 'mar', 'mer', 'jeu', 'ven', 'sam');
    // extraction des jour, mois, an de la date
    list($jour, $mois, $annee) = explode('/', $date);
    // calcul du timestamp
    $timestamp = mktime (0, 0, 0, $mois, $jour, $annee);
    // affichage du jour de la semaine
    echo $joursem[date("w",$timestamp)];
    ?>
    Je ne vois pas d'où vient le problème

    J'au oublié de préciser : j'ai fait le test sur Excel du 01/01/2038 au 01/03/2038 et il ressort bien un problème avec $timestamp = mktime (0, 0, 0, $mois, $jour, $annee);

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Sur un serveur 32 bits, la limite est 2038 avec les fonctions de date.
    Utilise le nouvel objet Datetime :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $joursem = array('lun', 'mar', 'mer', 'jeu', 'ven', 'sam', 'dim');
     
    $objDate = date_create_from_format('d/m/Y', '21/01/2038');
    echo '<br>test le jour du 22/01/2038 : ' . $joursem[$objDate->format('N')];
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éprouvé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Par défaut
    Merci pour cette réponse.
    je vais démarrer avec le calendrier que je viens de faire et je modifierai un peu plus tard.

    Merci encore

  4. #4
    Membre éprouvé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Par défaut
    Bonjour,
    En attendant que j'utilise le nouvel objet Datetime je vais utiliser le calendrier que j'ai commencé à faire.
    Pour la partie dynamique qui affiche les mois et les années je n'ai pas de problème (jusqu'en 2038 !!)

    pour la partie des jours j'ai besoin de récupérer la date sélectionnée dans un input.
    Je voudrais également changer la couleur au moment d'un clic et revenir à la couleur d'origine quand on clique sur un autre jour.
    mon code pour la partie des jours du calendrier

    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
     
    <?php
     
    if (isset($_POST['ma_selection']))		$ma_selection = $_POST['ma_selection'];
    else $ma_selection = "";
     
    echo '<table border=1 style="border-collapse:collapse" CELLPADDING=3 CELLSPACING=0><tr>';
    echo '<td>Lu</td><td>Ma</td><td>Me</td><td>Je</td><td>Ve</td><td>Sa</td><td>Di</td></tr>';
    for($i=1; $i<8; $i++) { echo '<td class="day_cal" >', $i , '</td>';}
    echo '</tr><tr>';
    for($i=8; $i<15; $i++) { echo '<td class="day_cal" >', $i , '</td>';}
    echo '</tr></table>';
     
    ?>
    <FORM NAME="calendrier" ACTION="index.php?page=calendrier" METHOD="post" > 
    	valeur sélectionnée <input type="text" value="<?php echo $ma_selection; ?>" name="selection" >
    </FORM>
    Je pense bien qu'il faut appeler une fonction javascript mais m'y prendre pour récupérer le jour sélectionné ni comment changer la couleur de la cellule.

    Merci de votre aide

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    La valeur venant du formulaire c'est $_POST['selection'] pas $_POST['ma_selection'].

    Pour les click et les changements de couleur, c'est du Javascript oui.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème sur une Fonction récursive
    Par bernie74 dans le forum Développement
    Réponses: 4
    Dernier message: 21/11/2011, 12h45
  2. probléme sur une fonction
    Par titeufdev dans le forum PL/SQL
    Réponses: 3
    Dernier message: 11/01/2011, 09h36
  3. [String]Problème sur une fonction de récurrence
    Par hibou107 dans le forum Débuter avec Java
    Réponses: 9
    Dernier message: 13/04/2010, 15h53
  4. [PostgreSQL] [PostGreSQL] problème sur une fonction avec connexion
    Par roblescriso dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 04/06/2008, 18h03
  5. Problème avec une fonction date.
    Par kmayoyota dans le forum ASP
    Réponses: 8
    Dernier message: 09/09/2004, 12h33

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