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

Fermé
Doywan - 20 oct. 2009 à 01:36
gloutonbargeot Messages postés 348 Date d'inscription vendredi 24 juin 2011 Statut Membre Dernière intervention 15 novembre 2016 - 1 août 2012 à 15:55
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
20 oct. 2009 à 10:55
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 348 Date d'inscription vendredi 24 juin 2011 Statut Membre Dernière intervention 15 novembre 2016 123
1 août 2012 à 15:55
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 samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
20 oct. 2009 à 06:39
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