Afbeelding(en) op bepaalde tijd weergeven

Status
Niet open voor verdere reacties.

GillesKarel

Gebruiker
Lid geworden
22 mei 2016
Berichten
28
Op een bepaald moment, donderdag 15 september 2016 om 14.00 uur wil ik dat afbeelding01 op mijn webpage verandert in afbeelding02.
Twee minuten later moet afbeelding03 te zien zijn.
Elke twee minuten moet er een nieuwe afbeelding (afbeelding04,05,06 etc) te zien zijn.
Dit duurt tot 14.30 uur. Daarna moet afbeelding01 weer te zien zijn.
Hoe kan ik dat het beste, gemakkelijkste realiseren?
:rolleyes:
 
Rekening houdend met tijdszone van de gebruiker?
 
:d
Ja, als het bij mij hier in Nederland donderdag 15 september 2016 14.00 is moet het gaan gebeuren.
 
Met de tijdzone van de gebruiker kan ik geen rekening houden. :rolleyes:
Het 'evenement' gebeurd op donderdag 15 september 2016 om 14.00 (tot 14.30) uur.
 
Moeten de afbeeldingen realtime veranderen?
Zoja, dan wordt het een script met Javascript, AJAX en PHP.

Anders kan je het al alleen met PHP af.

Dan kan ik eens wat proberen te maken.
 
Laatst bewerkt:
Realtime? :D
Ik zou al geholpen zijn als op een site de afbeelding01, om 14.02 vervangen wordt door afbeelding02, om 14.04 door afbeelding03, om 14.06 door afbeelding04, om 14,08 door afbeelding05 en dat om 14.10 uur weer afbeelding01 te zien is.
Met PHP heb ik gezien is het mogelijk dit op hele uren te doen....maar ik heb nog nergens gezien dat je om de twee minuten een andere afbeelding krijgt.
Als je iets dergelijks zou kunnen realiseren....zou ik al een heel eind geholpen zijn.
:cool:
 
Zojuist wat op het net gevonden.
Alleen weet ik niet of dit werkt.
Wie kan mij zeggen of dit script werkt?
(het is nog niet aan een exacte datum gekoppeld...het zou alleen op donderdag moeten werken....toch? :rolleyes:

PHP:
<?php
date_default_timezone_set('Europe/Amsterdam');

$h = date('Gi'); //G (timer) = 0 tot 23 en i (minuten) = 00 tot 59
$d = date('N'); //1 (voor maandag) tot 7 (voor zondag )

if ($d = 4 && $h >= 1402 && $h < 1403) $img = 'images/afbeelding02.png';
if ($d = 4 && $h >= 1404 && $h < 1405) $img = 'images/afbeelding03.png';
if ($d = 4 && $h >= 1406 && $h < 1407) $img = 'images/afbeelding04.png';
if ($d = 4 && $h >= 1408 && $h < 1409) $img = 'images/afbeelding05.png';

else $img = 'images/afbeelding01.png';
?>

<img src="<?php echo $img; ?>">
 
Hiet ziet er goed uit. Maar wat houdt je tegen om het te proberen?

Met realtime bedoelde ik dat het direct aangepast wordt bij de gebruiker op het moment dat het moet. Normaal verandert een pagina pas na een refresh.
Dus als iemand een bepaald plaatje om 14:02 krijgt, en de pagina niet ververst, dat het nieuwe plaatje om 14:03 wordt opgehaald indien het realtime is.
 
Dat 'realtime' kan ik ondervangen door de pagina om de 2 minuten te refreshen.... :cool:
Anders zou ik het ook niet weten.

Nog even wat vragen:
PHP:
if ($d = 4 && $h >= 1402 && $h < 1403) $img = 'images/afbeelding02.png';
Hier wordt afbeelding02.png toch om 14.02 én 14.03 getoond?

Als ik de dag $d = 4 er uit wil slopen...hoe ziet dan deze regel er uit?
 
Je kan ook onderhuids refreshen met AJAX-technologie. ;)
Is wel wat complexer, maar het kan.

Verder staat er (even naar $h gezien) Als $h gelijk is of hoger aan 1402 En lager dan 1403, toon dan die afbeelding.
Dus NIET om 1403 zal je die zien.
 
Nu toch even opletten.
Ik heb ook zo'n systeempje staan het is leuk maar ... je maakt best dat je de code snel ervantussen kan halen als je te veel hits krijgt.

Ik heb ongeveer 7a 8000 hits/maand en lijkt voorlopig niet een probleem omdat het css gebonden is.Dus ik roep een andere css aan die aanpast en die dan zwaardere pictuur download. Waardoor als de gebruiker morgen nog eens komt de zwaardere pictuur niet opnieuw dient te laden.
 
En wat is nu je punt?
 
Wat gaat er mis?
Het onderstaande script doet wat ik wil, namelijk een afbeelding weergeven op het gewenste tijdstip.
PHP:
<?php
    header("refresh: 30;");
?>
<?php
date_default_timezone_set('Europe/Amsterdam');
 $h = date('Gi'); //G (timer) = 0 tot 23 en i (minuten) = 00 tot 59
 
if ($h >= 921 && $h < 922) $img = 'afb/afbeelding01.png';
if ($h >= 922 && $h < 923) $img = 'afb/afbeelding02.png';
if ($h >= 923 && $h < 924) $img = 'afb/afbeelding03.png';
if ($h >= 924 && $h < 925) $img = 'afb/afbeelding04.png';
if ($h >= 925 && $h < 926) $img = 'afb/afbeelding05.png';
 ?>
 <img src="<?php echo $img; ?>">

Als ik het script echter aanvul met de regel
PHP:
else $img = 'afb/afbeelding00.png';
Dan zie ik alleen afbeelding01.png

Het script ziet er dan zo uit:
PHP:
<?php
    header("refresh: 30;");
?>
<?php
date_default_timezone_set('Europe/Amsterdam');
 $h = date('Gi'); //G (timer) = 0 tot 23 en i (minuten) = 00 tot 59
 
if ($h >= 921 && $h < 922) $img = 'afb/afbeelding01.png';
if ($h >= 922 && $h < 923) $img = 'afb/afbeelding02.png';
if ($h >= 923 && $h < 924) $img = 'afb/afbeelding03.png';
if ($h >= 924 && $h < 925) $img = 'afb/afbeelding04.png';
if ($h >= 925 && $h < 926) $img = 'afb/afbeelding05.png';

else $img = 'afb/afbeelding00.png';
 ?>
 <img src="<?php echo $img; ?>">

Wat doe ik verkeerd...? :cool:
 
Laatst bewerkt:
Gebruik een if-elseif-elseif-elseif...-else constructie met accolades ☺
 
Waar zet ik die precies neer?
Heb nu dit....maar geen verandering/verbetering.

PHP:
<?php
    header("refresh: 30;");
?>
<?php
date_default_timezone_set('Europe/Amsterdam');
 $h = date('Gi'); //G (timer) = 0 tot 23 en i (minuten) = 00 tot 59
 
if ($h >= 1510 && $h < 1511) {
	$img = 'afb/afbeelding02.png';
}
if ($h >= 1511 && $h < 1512) {
	$img = 'afb/afbeelding03.png';
}
if ($h >= 1512 && $h < 1513) {
	$img = 'afb/afbeelding04.png';
}
if ($h >= 1513 && $h < 1514) {
	$img = 'afb/afbeelding05.png';
}
	
else {
		$img = 'afb/afbeelding01.png';
}
 ?>
 <img src="<?php echo $img; ?>">
 
Laatst bewerkt:
Hoi

Gister wat zitten maken. Het voorbeeld vind je in de bijlage. Elke browser gaat uit van de tijd op de webserver. Iedere 10 sec wordt de tijd gecontroleerd. De foto's komen in map "img". Dit kan je veranderen in .js bestand. De starttijd, timeout en intervaltijd kun je veranderen in .php bestand.
photo-001.jpg, photo-002.jpg, enzovoort zijn de foto's (max. 997). photo-998.jpg betekent te vroeg, photo-999.jpg betekent te laat.
Het is rechttoe rechtaan code die je makkelijk zelf kan aanpassen.

Een pagina refresh is niet fijn voor de bezoeker, de src van de image updaten is wat vriendelijker.

Suc6. Have fun.


edit: ik zie net dat je na de laatste foto weer de eerste foto wilt laten zien. Dat kun je zelf veranderen ga ik vanuit. Je kunt ook gewoon een hoge timeout instellen als je de code zo wilt laten.
 

Bijlagen

Laatst bewerkt:
Ha Bron,

Allereerst bedankt voor je meedenken.
Ik ga er zeker mee aan de slag.
Als ik vragen heb zal ik me bij je melden.
De eerste indruk is in ieder geval heel goed, waarvoor nogmaals dank.
 
In jouw voorbeeld gebruikte je overigens steeds een if, terwijl je daarna een elseif moest gebruiken. ;)
Een switch-statement was overigens nog beter geweest.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan