Convertion format date

Résolu/Fermé
OMAZ - 25 juin 2012 à 10:02
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 - 25 juin 2012 à 13:54
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 ?

A voir également:

12 réponses

tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 219
25 juin 2012 à 10:21
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
a partir de la date de creation 1960..
0
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 219
25 juin 2012 à 10:44
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
oui c est ca genre aujourd'hui le 25/06/2012 c'est le 19169éme jour
cela concerne 26000 lignes
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
c'est depuis 01/01/1960
0
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 219
25 juin 2012 à 13:09
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
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
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 219
25 juin 2012 à 13:19
format9. informat9 fait partie du format de la date?
0
non non l'affichage est 20120625 quand je regarde le parametrage c'est format9. et en informat9.
0
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 219
25 juin 2012 à 13:36
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
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
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 219
25 juin 2012 à 13:54
Tant mieux pour vous :).

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