Faire apparaitre un lien a une certaine heure

Résolu/Fermé
Mahaks - 22 janv. 2010 à 12:46
mahaks Messages postés 55 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 26 janvier 2010 - 24 janv. 2010 à 09:07
Bonjour,

Je voudrais savoir si il est possible de faire apparaitre un lien à une certaine heure ?
Par exemple, je voudrais qu'une partie de mon site soit disponible que de 22h à 01h par exemple.
Est-ce qu'il y aurait un moyen pour que le lien apparaisse et disparaisse tout seul ou il faut le faire manuellement ?
Je ne trouve réponse nul part...

Merci d'avance pour votre réponse !
A voir également:

13 réponses

Salut !

Merci pour vos réponses !
Bon j'ai réussis..

Si ça intéresse quelqu'un voici mon code qui est assez simple et court :

<?php
$heure=intval(date("H",time()));
if ($heure>=21||$heure<7) {
?>
<a href="http://#">Lien ouvert entre 21h et 7h..</a>
<?php
} else {
?>
<a href="http://#">Lien fermé de 7h à 21h</a>
<?php
}
?>

Voila ça marche très bien.
Par contre si vous voulez ouvrir le lien entre 1h et 7h par exemple,
vous devez modifier le if :

if ($heure>=1&&$heure<7) {

Remplacez les || par des && si le chiffre de l'heure d'ouverture est plus petit que l'heure de fermeture.
Voila j'espère que ça aidera quelqu'un.

Merci pour votre aide !
1
wash14 Messages postés 2 Date d'inscription samedi 23 janvier 2010 Statut Membre Dernière intervention 23 janvier 2010 1
23 janv. 2010 à 17:10
Essai de modifier comme ceci :

<?php
$timestamp_heure_demander_debut = mktime(16, 50);
$timestamp_heure_demander_fin = mktime(17, 03);

?>

A +
1
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
22 janv. 2010 à 13:18
Si tes pages sont générées dynamiquement (par un script PHP par exemple), il suffit d'englober les instructions qui ne doivent être activées qu'à certaines heures dans un bloc commençant par un if testant l'heure courante.

Consulte ta documentation PHP pour trouver les fonctions adaptées.

Si tes pages ne sont pas dynamiques (code HTML pur) un script Javascript cachant les noeuds DOM qui doivent l'être.
0
Ok donc c'est possible...

J'utilise le php dans mes pages.
Mais pourriez vous m'expliquer grossièrement comment ça marche ?
Qu'est-ce que vous voulez dire par tester l'heure courante ?

Est-ce que ça a un rapport avec le timestamp ?

Je suis un peu perdu, je débute en php...
Merci !
0

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

Posez votre question
Camuke Messages postés 224 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 12 août 2011 88
22 janv. 2010 à 15:21
Salutation,

niveau code, cela donnerai sa:
<?php
$heureActuel = date("H");
$minutesActuel = date("i");

$heuremin = 15;
$minutesmin = 50;

$heuremax = 16;
$minutesmax = 50;

echo $heureActuel.'h '.$minutesActuel.' >= '.$heuremin.'h '.$minutesmin.'<br>';
echo $heureActuel.'h '.$minutesActuel.' <= '.$heuremax.'h '.$minutesmax.'<br>';
if ($heureActuel >= $heuremin && $minutesActuel >= $minutesmin) {
	if ($heureActuel < $heuremax) {
		echo 'Nous sommes dans l\'interval';
	}
	else if ($heureActuel == $heuremax && $minutesActuel <= $minutesmax) {
		echo 'Nous sommes dans l\'interval';
	} else {
		echo 'Nous sommes pas dans l\'interval';
	}
}else {
	echo 'Nous ne sommes pas dans l\'interval';
}


Bonne journée a toi
0
Petit Raptor Messages postés 187 Date d'inscription mardi 22 décembre 2009 Statut Membre Dernière intervention 16 mars 2010 1
22 janv. 2010 à 15:30
Arf, ton code fonctionne moitié, j'ai régler comme ceci:

<?php
			$heureActuel = date("H");
			$minutesActuel = date("i");
			
			$heuremin = 15;
			$minutesmin = 30;

			$heuremax = 15;
			$minutesmax = 31;

			if ($heureActuel > $heuremin && $minutesActuel > $minutesmin)
			{
				if ($heureActuel > $heuremax && $minutesActuel > $minutesmax)
				{
					echo 'On est dans l\'interval';
				}
				else
				{
					echo 'On est dans dans la periode de temps 1';
				}
			}
			else
			{
				echo 'On est dans dans la periode de temps 2';
			}
			?>


A l'heure où j'ai fait le test, il été 25, ça m'as afficher: On est dans la periode de temps 2

J'ai ensuite changer en ceci:

<?php
			$heureActuel = date("H");
			$minutesActuel = date("i");
			
			$heuremin = 15;
			$minutesmin = 25;

			$heuremax = 15;
			$minutesmax = 30;

			if ($heureActuel > $heuremin && $minutesActuel > $minutesmin)
			{
				if ($heureActuel > $heuremax && $minutesActuel > $minutesmax)
				{
					echo 'On est dans l\'interval';
				}
				else
				{
					echo 'On est dans dans la periode de temps 1';
				}
			}
			else
			{
				echo 'On est dans dans la periode de temps 2';
			}
			?>


A l'heure du test il été 27 et ça m'a afficher la même chose.
0
Camuke Messages postés 224 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 12 août 2011 88
22 janv. 2010 à 15:47
Oui je l'ai fait un peu vite en fait, apres quelque correction, j'ai obtenu ceci :

<?php
$heureActuel = date("H");
$minutesActuel = date("i");

$heuremin = 15;
$minutesmin = 50;

$heuremax = 16;
$minutesmax = 50;

if ($heureActuel >= $heuremin && $minutesActuel >= $minutesmin) {
	if ($heureActuel < $heuremax) {
		echo 'Nous sommes dans l\'interval';
	}
	else if ($heureActuel == $heuremax && $minutesActuel <= $minutesmax) {
		echo 'Nous sommes dans l\'interval';
	} else {
		echo 'Nous sommes pas dans l\'interval';
	}
}else {
	echo 'Nous ne sommes pas dans l\'interval';
}?>
0
Petit Raptor Messages postés 187 Date d'inscription mardi 22 décembre 2009 Statut Membre Dernière intervention 16 mars 2010 1
22 janv. 2010 à 18:40
ça a l'air de marcher mais où est-ce que l'on met ce que l'on veux qu'y apparaisse a l'heure demander ?
0
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
22 janv. 2010 à 19:46
à la place de la ligne echo "...dans l'intervalle...."
0
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
22 janv. 2010 à 19:55
Par ailleurs je ne suis pas certain que ces tests fonctionnent pour tous les moments : si l'intervalle autorisé est de 20h30 à 22h30, à 21h00 ils donneront echo 'Nous ne sommes pas dans l\'interval';

Une suggestion :

$momentMin = $heureMin * 60 + $minuteMin;
$momentMin = $heureMax * 60 + $minuteMax;
$momentActuel = $heureActuel * 60 + $minuteActuel;

if( $momentActuel >= $momentMin AND $momentActuel <= $momentMax )
   echo 'Nous sommes dans l\'intervalle';
else
   echo 'Nous ne sommes pas dans l\'intervalle';
0
mahaks Messages postés 55 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 26 janvier 2010 19
23 janv. 2010 à 13:50
Je ne sais pas ou aller pour cliquer sur RESOLU...
Donc voila c'est RESOLU puisque mon code marche.
J'ai pas testé les autres du coup..
0
Petit Raptor Messages postés 187 Date d'inscription mardi 22 décembre 2009 Statut Membre Dernière intervention 16 mars 2010 1
23 janv. 2010 à 17:05
Je suis désolé mais ton code ne marche pas chez moi ....

J'ai par contre fait un code un peu plus long de mon coté mais qui me parait un peu plus sur.

Seulement voila, il marche a moitié.

Le voici:

<?php
			$timestamp_heure_demander_debut = mktime(16, 50, 12, 1, 23, 2010);
			$timestamp_heure_demander_fin = mktime(17, 03, 10, 1, 23, 2010);
			
			$heure_actuel = date('H');
			$minutes_actuel = date('i');
			
			$heure_demander_debut = date('H', $timestamp_heure_demander_debut);
			$minutes_demander_debut = date('i', $timestamp_heure_demander_debut);
			
			$heure_demander_fin = date('H', $timestamp_heure_demander_fin);
			$minutes_demander_fin = date('i', $timestamp_heure_demander_fin);
			
			if ($heure_actuel >= $heure_demander_debut  AND $heure_demander_debut <= $heure_demander_fin)
			{
				if($minutes_actuel >= $minutes_demander_debut AND $minutes_demander <= $minutes_demander_fin)
				{
				?>
					<p><a href="news/admin/index.php">Administration News</a></p>
				<?php
				}
				else
				{
				?>
					<p><span style="color: red">Administration News (Désactiver)</span></p>
				<?php
				}
			}
			else
			{
			?>
				<p>Administration News (Désactiver)</p>
			<?php
			}
			?> 


Il est 16H59: Administration News est en lien.
Il est 17H02: Administration News (Désactiver) est afficher en rouge.
Il est 17H05: Administration News (Désactiver) est toujours affiché en rouge.

J'y suis presque ^^

Pouvez-vous m'aider a le terminer ?
0
Petit Raptor Messages postés 187 Date d'inscription mardi 22 décembre 2009 Statut Membre Dernière intervention 16 mars 2010 1
23 janv. 2010 à 17:44
17H44 : Administration News (Désactiver) écrit en rouge toujours :s
0
mahaks Messages postés 55 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 26 janvier 2010 19
24 janv. 2010 à 09:07
Re bonjour.

Petit raptor,

j'ai copié collé le bout de code que j'ai mis,
et il marche impeccable.

Il suffit de changer les liens.

Explique moi exactement ce que tu veux faire,
je te ferais le code. T'as du te planter dans les heures du if..
0