[PHP]La date d'un jour de la semaine en cours

Doywan -  
gloutonbargeot Messages postés 349 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je vais détailler un peu plus, j'ai besoin d'arriver à déterminer la date du vendredi, du samedi et du dimanche de la semaine en cours.

Je souhaite comparer ces trois dates à une autre et si la quatrième date est = à l'une des trois premières cela m'affiche les articles correspondant.
Mais pour éviter de sortir tout les articles dont la date tombe un vendredi, un samedi ou un dimanche dans l'année, je dois donc restreindre l'action à la semaine en cours.

Seulement ça deviens un peu complexe pour moi à ce niveau là, quelqu'un saurait il m'aider ?


Merci d 'avance,


Doywan
A voir également:

2 réponses

Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
voici un petit script avec une fonction qui va te sortir un array des jours de la semaine en cours ( avec un format de date adaptable)

il te suffira de faire une requette dans ta base avec
" SELECT * FROM ta_table WHERE date='".date_vendredi."' OR date='".date_samedi."' ORdate='".date_dimanche."'"


<html>
<?php
//fonction generation dates semaine complete en cours
function dates_semaine($timestamp_aujourdhui){
	$num_jour_sem=date("w",$timestamp_aujourdhui); // renvoie le numero du jour dans la semaine (0=dimanche, 1=lundi........)
	if($num_jour_sem==0){ $num_jour_sem=7; } // si dimanche on change le 0 par 7
	$timestamp_1_jour=3600*24;
	//generation de l'array des dates des 7 jours de la semaine donc a la numerotation française
	for($j=1;$j<=7;$j++){
		$timestamp_jour_sem=$timestamp_aujourdhui-(($num_jour_sem - $j)*$timestamp_1_jour);
		//on construit l'array pour la reponse:
		//a ce niveau la tu peux modifier le format de la date pour l'adapter a celui de ta base
		//$array_sem[$j]=date("d/m/Y",$timestamp_jour_sem); //au format français
		$array_sem[$j]=date("Ymd",$timestamp_jour_sem); //au format mysql
	}
return $array_sem;
}
?>
<body>
<form name="form1" method="post" action="dates_semaine_en_cours.php">
Cliquer sur Ok pour lancer le script   
<input type="Submit" name="envoyer" value="Ok" />
</form>
<br /><br />

<?php
if(isset($_POST['envoyer'])){
	$array_dates=dates_semaine(mktime()); //appel fonction qui va retourner l'array contenant les dates de la semaine en cours
	//affichage du resultat
	echo "<b>R&eacute;sultat pour la semaine</b><br />";
	for($j=1;$j<=sizeof($array_dates);$j++){
		echo $array_dates[$j]."<br />";
	}
	echo "<br /><br /><b>soit pour le vendredi samedi dimanche:</b><br />";
	echo 'Vendredi: '.$array_dates[5].'<br />';
	echo 'Samedi: '.$array_dates[6].'<br />';
	echo 'Dimanche: '.$array_dates[7].'<br />';
}
?>
</body>
</html>
2
gloutonbargeot Messages postés 349 Date d'inscription   Statut Membre Dernière intervention   124
 
Oh oui merci l'ami! Ta fonction magique m'a bien aidé! Même 3 ans après! :D
0
lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352
 
je verrais un truc comme ça :
si tes articles sont entrés avec des dates tu cherche le numéro de la semaine des ces articles, puis ensuite tu recupere le N° de la semaine en cours.

une fois fait tu met en tableau tous tes articles qui on le meme N° de semaine que celle en cours et dont le jours =0 (dimanche) 6 samedi 5 vendredi

il faudra utiliser les fonctions date de php

$semaine_encours=date('W');//semaine actuelle
$jour_valide=array(0, 5, 6 ); //tableau correspondant au jours vendredi samedi dimanche

ensuite suivant le format dans lequel sont enregistré tes dates dans ta BD (l'ideal c'est un timestamp) tu fait une boucle sur tous tes articles

$date_article=getdate($ladate_detonarticle_entimestamp);//retourne un array
$semaine_article=('W',$ladate_detonarticle_entimestamp);//calcul du N° de semaine de l'article
if($semaine_article== $semaine_encours && in_array($date_article['wday'],$jour_valide)
{
//c'est bon
}


voila une piste j'ai pas testé le code, mais c'est le principe
0