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] Conversion de la date Windows en format jj/mm/aaaa [Trucs & Astuces]


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 18
    Points : 16
    Points
    16
    Par défaut [Dates] Conversion de la date Windows en format jj/mm/aaaa
    Bonjour,

    presque tout est dans le titre. Je cherche à convertir la date Windows 38363 par exemple (valeur numérique) en une valeur "lisible"

    J'ai pas réussi à trouver l'instruction qui va bien

    Merci par avance pour l'aide

    Jerome

  2. #2
    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
    Salut, quel est donc ce format ?
    Ton exemple 38363 est-il censé correspondre au 29/11/1963 ?

  3. #3
    Membre à l'essai
    Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 18
    Points : 16
    Points
    16
    Par défaut
    Ca correspond à la date de départ de Windows qui est le 01/01/1900 => 1
    . Aujourd'hui c'est par exemple le 38387

    Tu l'as dans Excel : Tu entres une date et ensuite tu formates la celleule en standard

    J'ai des dates stockées sous cette forme et j'ai besoin de les afficher de manière "intelligible"

    merci pour ta réponse

    Jerome

  4. #4
    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
    Ok, j'avais donc faux, je pensais au jour julien modifié qui commence en 1858, voilà pourquoi je me retrouvais en 1963.
    Il a encore fallut qu'ils inventent leur propre format, ca aurait été le jour julien modifié, y'a des formules pour, mais là, je vois pas.
    Ou alors calculer par rapport au jour julien modifié la date + difference avec le format excel.
    Le probleme residerait dans une determination exacte du nombre de jours entre 1858 et 1900.

  5. #5
    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
    Est-ce que ca a l'air de marcher comme ca ?
    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
    function ExcelToDate($julian) 
     { 
        $julian = $julian + 2415019;
        $a = $julian + 32044; 
        $b = floor((4 * $a + 3) / 146097); 
        $c = $a - floor(($b * 146097) / 4); 
        $d = floor((4 * $c + 3) / 1461); 
        $e = $c - floor((1461 * $d) / 4); 
        $m = floor((5 * $e + 2) / 153); 
        $tbDate['day'] = $e - floor((153 * $m + 2) / 5) + 1; 
        $tbDate['mounth'] = $m + 3 - 12 * floor($m / 10); 
        $tbDate['year'] = $b * 100 + $d - 4800 + floor($m / 10); 
     
        return $tbDate; 
     } 
    print_r(ExcelToDate(38387));

  6. #6
    Membre à l'essai
    Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 18
    Points : 16
    Points
    16
    Par défaut [RESOLU] Conversion de la date Windows en format jj/mm/aaaa
    SUper. Merci à tous les 2 pour le coup de main. Ca fonctionne nickel

    Bon week end

    Jerome

  7. #7
    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
    Verifie bien quand meme, avec ces calculs, je trouve que le jour n°1 est le 31/12/1899, soit c'est donc bien sur cette date qu'il se base, soit il y a 1 décalage d'1 jour, il suffirait donc juste de changer $julian = $julian + 2415019; par $julian = $julian + 2415020;
    ... Soit un truc m'échappe.

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    ... Soit un truc m'échappe.
    A vue de nez, Excel est buggé : il considère que l'année 1900 est bissextile.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    =DATEDIF("01/02/1900";"01/03/1900";"d") => 29 jours
    =DATEDIF("01/02/1901";"01/03/1901";"d") => 28 jours
    D'où le décallage d'une journée.

  9. #9
    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
    Ah bah nous v'là beaux ! Merci jeca, me voilà rassuré.
    Il est hors de question de mofifier cette formule pour lui faire accepter un 29 fevrier 1900 qui n'a jammais existé, j'en serais d'ailleurs bien incapable.
    Donc la conversion reste bonne sauf pour les dates anterieures au 1er mars 1900, ca devrait suffire.

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

Discussions similaires

  1. Problème conversion java.util.date to java.sql.date
    Par sabeurios dans le forum Général Java
    Réponses: 2
    Dernier message: 15/01/2015, 00h06
  2. Réponses: 2
    Dernier message: 21/03/2007, 16h06
  3. Réponses: 2
    Dernier message: 10/03/2007, 09h14
  4. Date conversion format sql
    Par nikoo_27 dans le forum Langage
    Réponses: 4
    Dernier message: 07/11/2006, 12h31
  5. [date] conversion d'une date et compatibilité access
    Par WriteLN dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 10/01/2005, 14h03

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