encore des dates

Eléphant du PHP | 76 Messages

10 avr. 2008, 14:17

Bonjour,
j'ai trouvé un petit script qui liste entre les dates qui me permet d'approfondir encore un petit peu les dates
function diff_date($jour , $mois , $an , $jour2 , $mois2 , $an2){ // $calcule la dierence de jours entre les deux dates
$timestamp2 = mktime(0, 0, 0, $mois, $jour, $an);
$timestamp = mktime(0, 0, 0, $mois2, $jour2, $an2);

$diff = floor(($timestamp - $timestamp2) / (3600 * 24));
return $diff;
}

$nbr_jours = diff_date($jour , $mois , $an , $jour2 , $mois2 , $an2);// recupere nombre de jours sur variable $nbr_jours

echo" ça fait: $nbr_jours Jour(s)<br>";//verif nombre de jours sur variable $nbr_jours



function dateop($jour , $mois , $an , $i){ // $i correspond au nombre de jour à ajouter a la date
$temp = array();
for($j=0;$j<=$i;$j++){
$timestamp = mktime(0, 0, 0, $mois, $jour+$j, $an);// aditione la diference de jours à la date de debut
$temp[$j] = date("Y-m-d", $timestamp);


}
return $temp;
}
$tab = array();
$tab = dateop($jour , $mois , $an , $nbr_jours);
for($k=0;$k<count($tab);$k++){

echo" Jour $k : $tab[$k]<br>";
} 


Comment transformer la fonction dateop()
pour que je puisse récupérer le jour ,le mois et l'année séparés?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

10 avr. 2008, 14:28

Avec la fonction explode() tu peux transformer une chaine en tableau en séparant les différents se trouvant de part et d'autre du délimiteur que tu auras spécifié... cela peut être une piste pour ce que tu veux faire :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 76 Messages

10 avr. 2008, 14:40

c'est pas marrant, trop facile , je l'avais oublié celle là :lol:
merci =D>

une petite question encore

une date 20080410 peut on la transformer en 2008-04-10 ?

ViPHP
AB
ViPHP | 5818 Messages

11 avr. 2008, 01:05

Il me semble qu'il y a un tuto sur ce site pour la manipulation des formats des dates...

Eléphant du PHP | 76 Messages

11 avr. 2008, 10:07

ben vi j'ai regardé mais j'ai pas compris comment séparer 20080410 en 2008 04 10 :oops:

ViPHP
AB
ViPHP | 5818 Messages

11 avr. 2008, 11:39

Le tout serait de savoir d'où vient cette donnée. Car se serait certainement plus facile de l'enregistrer au bon format dès le départ.

Sinon les fonctions sur les dates c'est ici http://fr.php.net/manual/fr/ref.datetime.php

Au pire si tu ne trouve pas facilement ton bonheur tu peux toujours extraire les quatre premiers caractères puis les deux suivant et relier le tout par un -
$time='20080410';

$separe['annee'] = substr($time,0,4);
$separe['mois'] = substr($time,4,2);
$separe['jour'] = substr($time,6,2);

$nouveau_format = implode('-',$separe);
echo $nouveau_format;
Attention tu auras un bug pour les années supérieures à 9999 :lol: