Convertion format date

Résolu
OMAZ -  
tryan44 Messages postés 1289 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Dans ma table j'ai une varible dat_maj qui est sous forme 20090531 (lenght 8, format9.,informat9., numeric) je souhaite avoir le nombre de jour que cela represente...avez vous des idées ?

12 réponses

  1. tryan44 Messages postés 1289 Date d'inscription   Statut Membre Dernière intervention   220
     
    Salut,

    "je souhaite avoir le nombre de jour que cela représente"

    A partir de quoi? Quelle est la référence pour calculer ce nombre de jour?
    0
  2. tryan44 Messages postés 1289 Date d'inscription   Statut Membre Dernière intervention   220
     
    1960, c'est tout?

    Histoire d'être sure, vous voulez calculer le nombre de jours écoulés depuis l'année 1960 à "20090531" et rien de plus?
    0
  3. OMAZ
     
    oui c est ca genre aujourd'hui le 25/06/2012 c'est le 19169éme jour
    cela concerne 26000 lignes
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. tryan44 Messages postés 1289 Date d'inscription   Statut Membre Dernière intervention   220
     
    Je ne sais pas si c'est la meilleur façon de faire ni si c'est super exacte (à confirmer), néanmoins :
    //date
    $dat_maj = 20090531;
    //date de référence
    $date1 = mktime(0, 0, 0, 01, 01, 1960);
    //date à comparer 
    $date2 = mktime(0, 0, 0, substr($dat_maj,4,-2), substr($dat_maj,6), substr($dat_maj,0,-4));
    //soustraction des 2 dates
    $soustraction = $date1-$date2;
    //on divise et on arrondi | 1 jours = 86400 secondes
    $nbrjours = round($soustraction/86400);
    //comme la date est antérieure au premier janvier 1970, on supprime le tiret
    echo str_replace('-','',$nbrjours);
    
    0
  6. OMAZ
     
    en faite normalement c'est juste une question de format mais impossible de faire la bascule si je fais dat_jr = today() il me donne 19169 car aujourd'hui est le 19169e depuis le 01/01/1960. Et c'est ce que je veux sauf que les dates à convertir sont sous forme 20120625 format9. informat9. ??
    0
  7. tryan44 Messages postés 1289 Date d'inscription   Statut Membre Dernière intervention   220
     
    format9. informat9 fait partie du format de la date?
    0
  8. OMAZ
     
    non non l'affichage est 20120625 quand je regarde le parametrage c'est format9. et en informat9.
    0
  9. tryan44 Messages postés 1289 Date d'inscription   Statut Membre Dernière intervention   220
     
    Excusez moi mais je ne pige plus rien..!

    Quand vous sortez vos dates avec $dat_maj, qu'est ce qui en ressort exactement?
    C'est quoi ce paramétrage format9 et informat9? D'ou ça sort?
    0
  10. OMAZ
     
    j ai trouvé !! j'ai fais en 2 etapes :

    d'abord : variable x = put(de ma varialble,9.);
    puis : format variable x YYMMDD10.;
    enfin : variable y = input(variablex,DDMMYY10.);

    ce qui donne en prenant :
    dat_maj = 20090531

    dat_maj2 = put(dat_maj,9.);
    format dat_maj2 YYMMDD10. ;
    dat_maj3 = input(dat_maj2,DDMMYY10.);

    dat_maj3 = 16699
    0
  11. tryan44 Messages postés 1289 Date d'inscription   Statut Membre Dernière intervention   220
     
    Tant mieux pour vous :).

    Ceci dit, je n'ai absolument rien comprit à votre solution...
    0