Avatar billede allanj1 Nybegynder
27. juni 2004 - 14:23 Der er 24 kommentarer og
1 løsning

Skifte billeder på klokkeslet og ugedage..

Hej.Jeg er slet ikke en haj til dette men prøver virkelig at suge alt til mig her på eksperten.dk !
Jeg har nu en sjov ide som jeg bare har sat mig for at lave ,og det er :
Billeder der skifter i løbet af dagen ...
f.eks. mandag fra kl 00-06 et billede ,kl 06-10 et andet billede osv.
Det skal være sådan at man kan sige at torsdag fra 12-16 vises et billede .. så man har kontrol over hvilket billde/tekst og hvornår.
Gerne et færdig scribt MEN helt ok med at forklare hvad jeg skal gøre ;-)
TUSIND TAK

/AllanJ
Avatar billede dennismp Nybegynder
27. juni 2004 - 14:43 #1
$dag=date('W'); // 0=søn, 1=man, 2=tors
$time=date('H'); // fra 00 til 23

Nu har du hvad du behøver.. Lad os sige, mandag fra 00-06 vises b1.gif eller b2.gif

if( $dag == 1 && ($time => 0 && $time <= 06) ) // mandag, mellem 00-06
  print '<img src="b1.gif">';
else
  print '<img src="b2.gif">';                  // resten af tiden.

.. hvis vi skal være lidt flinke og lave det lidt nemere for dig. $m er en variable som indeholder de billeder du ønsker at vise..fx

// Opsætning

$m['søn'][0] = 'b1.gif'; // viser b1.gif søndage mellem 00:00 og 00:59
$m['søn'][1] = 'b1.gif'; // viser b1.gif søndage mellem 01:00 og 01:59
$m['man'][12] = 'b2.gif'; // viser b2.gif mandage mellem 12:00 og 12:59

// kode
$dag=date('W');
$time=date('H');
$ugedage = array('søn','man','tir','ons','tor','fre','lør');

if( isset($m[$ugedage[$dag]]) ) {
  print '<img src="' . $m[$ugedage[$dag]] . '">';
}
Avatar billede dennismp Nybegynder
27. juni 2004 - 14:44 #2
Hvis du gerne vil have et "default" billede - hvis der ikke er angivet noget, så ændre du bare de sidste 3 linjer til:

if( isset($m[$ugedage[$dag]]) )
  $img = $m[$ugedage[$dag]];
else
  $img = 'b0.gif'; // vises som default

print '<img src="' . $img . '">';
Avatar billede allanj1 Nybegynder
27. juni 2004 - 15:54 #3
jeg forstår ikke rigtigt at 2=tors ?? er Torsdag ikke = 4 ??
dag=date('W'); // 0=søn, 1=man, 2=tors
$time=date('H'); // fra 00 til 23

og hvad med MySQL

Vh
Allan
Avatar billede dennismp Nybegynder
27. juni 2004 - 16:05 #4
Joda, self. 2=tirs .. 'o' og 'i' ligger for tæt :)

Du behøver ikke MySQL til dette, med mindre du meget gerne vil
Avatar billede allanj1 Nybegynder
27. juni 2004 - 16:13 #5
jeg prøver lige ,vender tilbage ;-)
Avatar billede allanj1 Nybegynder
27. juni 2004 - 16:36 #6
Jeg kan ikke få det til at køre ,vil du prøve at lave koden helt fra start..
altså med alt ?
Avatar billede dennismp Nybegynder
27. juni 2004 - 17:13 #7
Hvad får du af fejl?
Avatar billede allanj1 Nybegynder
27. juni 2004 - 20:08 #8
Denne fejl
"Parse error: parse error, unexpected T_DOUBLE_ARROW in /customers/allanj.dk/allanj.dk/httpd.www/test.php on line 4"

mit scribt :
<?
$dag=date('W'); // 0=søn, 1=man, 2=tors
$time=date('H'); // fra 00 til 23
if( $dag == 0 && ($time => 20 && $time <= 21) ) 
  print '<img src="images/arrow.gif">';
else
  print '<img src="images/cd.gif">';                  // resten af tiden.

</body>
</html>
Avatar billede dennismp Nybegynder
27. juni 2004 - 20:10 #9
ah erstat denne
if( $dag == 0 && ($time => 20 && $time <= 21) )
med
if( $dag == 0 && ($time >= 20 && $time <= 21) )
Avatar billede allanj1 Nybegynder
27. juni 2004 - 20:15 #10
så denne
Parse error: parse error, unexpected '<' in /customers/allanj.dk/allanj.dk/httpd.www/test.php on line 9
Avatar billede dennismp Nybegynder
27. juni 2004 - 20:22 #11
sådan her (du skal nok lige rette tiderne/dagen igen - men ellers)

<?php
$dag=date('W'); // 0=søn, 1=man, 2=tors
$time=date('H'); // fra 00 til 23

if( $dag == 1 && ($time >= 0 && $time <= 06) ) // mandag, mellem 00-06
  print '<img src="b1.gif">';
else
  print '<img src="b2.gif">';                  // resten af tiden.
?>
Avatar billede allanj1 Nybegynder
27. juni 2004 - 21:43 #12
så nu nærmer vi os..
<?php
$dag=date('W'); // 0=søn, 1=man, 2=tors
$time=date('H'); // fra 00 til 23

if( $dag == 0 && ($time >= 21 && $time <= 23) ) // mandag, mellem 00-06
  print '<img src="images/dotted_line_lodret.gif">';
else
  print '<img src="images/cd.gif">';                  // resten af tiden.
?>
</body>

er vi ikke enige om at søndag mellem kl 21 & 23 vises "images/dotted_line_lodret.gif" ,det gør den bare ikke... men viser istedet images/cd.gif

Hvorfor mon det ??

Allan
Avatar billede dennismp Nybegynder
27. juni 2004 - 22:51 #13
Du kan tilføje

echo "dag = $dag<br/>";
echo "time = $time<br/>";

før if-sætning, så vi skan se hvilke vlrdier de har. Hvad skriver den?
Avatar billede dennismp Nybegynder
27. juni 2004 - 23:01 #14
men jo, vi er enige :-)
Avatar billede allanj1 Nybegynder
28. juni 2004 - 06:39 #15
hej igen..

Her mandag morgen kl 06,41 skriver den..
dag = 27
time = 06

dag = 27 ?? er det ikke d. 26.Juni idag ?
Avatar billede allanj1 Nybegynder
28. juni 2004 - 08:08 #16
jeg mener selvfølgelig at det er den 28. Juni ;-)
Avatar billede allanj1 Nybegynder
28. juni 2004 - 10:17 #17
ha ha ha ... fandt fejlen ..
det skal være lille w i
$dag=date('W'); // 0=søn, 1=man, 2=tors
$time=date('H'); // fra 00 til 23

så får du lidt point
Avatar billede allanj1 Nybegynder
28. juni 2004 - 10:29 #18
svar mener jeg ,så får du lidt point ;-)
Tak for hjælpen
Avatar billede dennismp Nybegynder
28. juni 2004 - 12:09 #19
christ - jeg slog det ellers op :\.

Nå, men det er da godt at se een af os er kvik :)
Avatar billede allanj1 Nybegynder
28. juni 2004 - 13:18 #20
lige en sidste ting
kan man sætte tiden til f.eks. at billedet starter kl 13,15 ??
Når billedet skal skifte ,hvordan gør jeg det så ,har haft lidt med at billederne bare placeres ved siden af hinanden ?
Håber du lige vil hjælpe med det sidste
Tak

AllanJ
Avatar billede dennismp Nybegynder
28. juni 2004 - 13:35 #21
Du kan bruge:
$min = date('i');


og så rette:
if( $dag == 0 && ($time >= 21 && $time <= 23) )
til
if( $dag == 0 && (($time = 13 && $min >= 15) || $time > 13) && $timer < 23 )

Men det bliver noget rod. Jeg ville nok lave det om, så du arbejder med minutter.

altså:
------------------------------------------------
$dag=date('w');  // 0 = søn
$tid=tilMinutter(date('H'),date('i')); // antal minutter siden midnat

function tilMinutter($timer,$min) { // omregner fra timer/minutter til minutter siden midnat
  return $timer*60+$min;
}

// på mandage, fra kl 13:15 til 14 vises b1.gif, ellers b2.gif
if( $dag == 1 && tilMinutter(13,15) >= $tid && $tid <= tilMinutter(14,00)  )
  print '<img src="b1.gif">';
else
  print '<img src="b2.gif">';
Avatar billede allanj1 Nybegynder
28. juni 2004 - 21:53 #22
tak !prøver lige at arbejde med det!
kan man refreshe koden hvert minut ??
dvs. hvis du er siden så skifter billede pludseligt ?
Avatar billede dennismp Nybegynder
28. juni 2004 - 22:02 #23
Kun ved at refresh'e hele siden (vha javascript, eller meta-refresh)
Avatar billede allanj1 Nybegynder
29. juni 2004 - 05:51 #24
er det simpelt ?
-nej ,nu skal jeg nok holde med at spørge ;-)
Avatar billede dennismp Nybegynder
29. juni 2004 - 11:03 #25
Det gør skam ikke noget..

meta-refresh: http://www.pageresource.com/html/metref.htm

Dette smider du bare i din script, og så skal meta'en bare kalde samme url med x antal sekunder
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester