[RESOLU] Formatage de date

Stickerz
Invité n'ayant pas de compte PHPfrance

21 août 2011, 15:38

Salut !

j'ai une variable qui représente aujourd'hui

Code : Tout sélectionner

$aujourdhui = time()
j'aimerais récupérer le timestamp du lundi précèdent a 00h01 et le dimanche suivant a 23h59 dans deux variables differentes

si vous avez des pistes a me donner ce serrais gentil, je penche en même temps sur le problème 8-|

je pense que utiliser les fonctions time et date suffisent mais je ne suis pas sur

ViPHP
xTG
ViPHP | 7331 Messages

21 août 2011, 15:43

La fonction strtotime() devrait te faire cela en un rien de temps. ;)

Stickerz
Invité n'ayant pas de compte PHPfrance

21 août 2011, 15:51

Ok merci ! ça marche !

mais j'ai une question, aujourd'hui on est dimanche et la fonction me retourne 1314482400 soit la date Sat, 27 Aug 2011 22:00:00 +0000

Code : Tout sélectionner

echo strtotime("next Sunday");



si j'utilise echo strtotime("last Monday"); ça me renverra le même problème ? cad lundi de la semaine dernière. comment remédier a cela ?

Stickerz
Invité n'ayant pas de compte PHPfrance

21 août 2011, 16:31

Re ! voila j'ai ecrit une fonction qui fait ce que je veux alors je partage

Code : Tout sélectionner

function getTimeNextDunLastMon($timestamp) { if((date("D", $timestamp)) == "Sun"){ $nextTimestamp = strtotime("last Saturday",$timestamp) + 60*60*48 - 1; } else { $nextTimestamp = strtotime("next Sunday",$timestamp); } if((date("D", $timestamp)) == "Mon"){ $lastTimestamp = strtotime("next Tuesday",$timestamp) - 60*60*48 + 1; } else { $lastTimestamp = strtotime("last Monday",$timestamp); } return array($nextTimestamp, $lastTimestamp); }
si on est lundi ou dimanche alors la fonction retourne le timestamp de ce matin ou ce soir et pas le lundi/dimanche de la semaine précédente / suivante

johnny666
Invité n'ayant pas de compte PHPfrance

03 févr. 2016, 22:04

je déterre ce vieux sujet du fin fond des limbes mais je suis hyer intéressé par la fonction et je n'arrive pas a faire apparaitre le résultat de la fonction de Stickerz ...
j ai tout tenté ... echo, etc.
sorry je suis une grosse clinche en php :-(

Mammouth du PHP | 2703 Messages

03 févr. 2016, 23:37

$tab = getTimeNextDunLastMon(time());
$next = $tab[0];
$last = $tab[1];

johnny666
Invité n'ayant pas de compte PHPfrance

03 févr. 2016, 23:57

pfff, chuis vraiment trop nul...
echo $next;
echo $last;

me renvoi une serie de chiffre ...

je voudrais un truc du style "lundi 07 février".

HELP !.

Mammouth du PHP | 2703 Messages

04 févr. 2016, 00:39


johnny666
Invité n'ayant pas de compte PHPfrance

04 févr. 2016, 01:30

je dois plus etre très loin mais j ai pas les bonnes dates ...

$tab = getTimeNextDunLastMon(strftime);
$next = $tab[0];
$last = $tab[1];
echo strftime(('%A %d %B'),$last) . '<br />';
echo strftime(('%A %d %B'),$next) . '<br />';

lundi29decembre et dimanche4janvier ...

j ai remplacé date par strftime mais les dates sont les memes avec date ?!.

jblaise666
Invité n'ayant pas de compte PHPfrance

14 févr. 2016, 18:15

N y arrivant pas avec vos conseils, J ai finalement demandé à un pote informaticien et je partage...

Code : Tout sélectionner

<?php setlocale(LC_TIME, 'fr_FR'); function getCurrentWeek($timestamp) { if(date("D",$timestamp)=="Mon") { $currentMonday=$timestamp; } else { $currentMonday=strtotime("last Monday",$timestamp); } if(date("D",$timestamp)=="Sun") { $currentSunday=$timestamp; } else { $currentSunday=strtotime("next Sunday",$timestamp); } return array($currentMonday, $currentSunday); } $t=strtotime("08 february 2016",time()); $i = getCurrentWeek ($t); echo '<b><p align="center"><font face="Verdana" size="3" color="#27176f">Du ' . strftime(('%A %d/%m'),$i[0]) . ' au ' . strftime(('%A %d/%m'),$i[1]) . ' :</font></p></b><br />'; ?>
Dommage qu on ai pas été jusqu au bout des choses avec le "echo" de la fonction.
merci quand même :-(.

johnny666
Invité n'ayant pas de compte PHPfrance

15 févr. 2016, 21:51

petite erreur :-)

Code : Tout sélectionner

<?php setlocale(LC_TIME, 'fr_FR'); function getCurrentWeek($timestamp) { if(date("D",$timestamp)=="Mon") { $currentMonday=$timestamp; } else { $currentMonday=strtotime("last Monday",$timestamp); } if(date("D",$timestamp)=="Sun") { $currentSunday=$timestamp; } else { $currentSunday=strtotime("next Sunday",$timestamp); } return array($currentMonday, $currentSunday); } $t=strtotime("08 february 2016",time()); $i = getCurrentWeek (time()); echo '<b><p align="center"><font face="Verdana" size="3" color="#27176f">Du ' . strftime(('%A %d/%m'),$i[0]) . ' au ' . strftime(('%A %d/%m'),$i[1]) . ' :</font></p></b><br />'; ?>