Avatar billede henrik6330 Nybegynder
17. marts 2011 - 15:21 Der er 11 kommentarer

hent forskellige side efter klokkeslet

hej jeg er stødt ind i et lille problem jeg har prøvet at finde er script som gør at hvis klokken er før 6 om morgen vises side a
og hvis ert er efter kl 6 vises side b

jeg har søgt her på eksperten og har måske fundet noget
men jeg kan ikke få det til at virke på min localhost

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Ny side 1</title>
<SCRIPT LANGUAGE="JavaScript">
var time = new Date().getHours();
if(time >= 8 && time < 11) {
  window.location.href = "side4.html";
else if(time>=11 && time<15){
  window.location.href = "side5.html";
else if(time>=15 && time<18){
  window.location.href = "side3.html";
//osv.
}
</SCRIPT>
</head>

<body>

</body>

</html>
er det nogle som har tid og lyst til at hjælpe
Avatar billede Freelanze Nybegynder
17. marts 2011 - 15:31 #1
http://www.tizag.com/javascriptT/javascriptdate.php

I bunden har du et eksempel som du sagtens kan omskrive:

"JavaScript Current Time Clock"
Avatar billede tjens Nybegynder
17. marts 2011 - 16:01 #2
Din if-else syntax er forkert med for mange { eller for få }

Fjern alle { og } da du kun har 1 statement på hvert niveau alligevel.
Avatar billede henrik6330 Nybegynder
17. marts 2011 - 21:27 #3
jeg ahr prøvet dette her men jeg kan ikke få det vil at virke som det skal

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Ny side 1</title>
<SCRIPT LANGUAGE="JavaScript">
var date = new Date();
var hour = date.getHours;
if (time >= 8 && time < 11)
  window.location.href = "side_1.htm";
else if (time>=11 && time<15)
  window.location.href = "side_2.htm";
else if (time>=15 && time<18)
  window.location.href = "side_3.htm";
//osv.
</SCRIPT>
</head>

<body>
<BODY onload="updateClock(); setInterval('updateClock()', 1000 )">
</body>

</html>
Avatar billede tjens Nybegynder
17. marts 2011 - 22:10 #4
#3  Variabel time er ikke defineret.

Kør dine scripts i Firefox med fejlkonsol åben:
Så ser du straks den slags fejl.
Avatar billede henrik6330 Nybegynder
17. marts 2011 - 23:29 #5
Error: missing ( before condition
Source File: file:///C:/xampp/htdocs/hj98ju25ki/test.htm
Line: 8, Column: 3
Source Code:
if time >= 8 && time < 11 

Error: not well-formed
Source File: file:///C:/xampp/htdocs/hj98ju25ki/test.htm
Line: 8, Column: 15
Source Code:
if time >= 8 && time < 11


det er denne line som er en fejl i men hvor???

var date = new Date();
var hour = date.getHours();
if (time >= 8 && time < 11)
håber at i kan hjælpe
Avatar billede tjens Nybegynder
18. marts 2011 - 07:37 #6
Jeg kan ikke forklare hvorfor parenteserne mangler.
Det må være en anden version af sourcen.
Hvorfor står der hj98ju25 i din source file url?
Det ligner ikke en folder du selv har valgt.

Men du har stadig den fejl som jeg nævnte i #3:
Du gemmer timetallet i felt "hour", og linien efter bruger du et udefineret felt "time" i din if.


Når javascript driller må man nogen gange starte "forfra":
start med
var date = new Date();
var hour = date.getHours();
alert("hour: " + hour);
og test det alene.

Udvid til
var date = new Date();
var hour = date.getHours();
alert("hour: " + hour);
if (hour <= 11)
  alert("under 11");
else
  alert("over 11 ");


Og byg så videre med få linier ad gangen, og test igen og igen.


Overvej at omstrukturere eller skifte fra if når der er brug for flere gange else.
F.eks. switch/case: http://www.w3schools.com/js/js_switch.asp
Avatar billede henrik6330 Nybegynder
18. marts 2011 - 08:07 #7
ja der virker
men jeg har har prøvet at bikke vider på den men hvor skal jeg sætte window.location.href = ind få at få forskelligis sider


<SCRIPT LANGUAGE="JavaScript">
var date = new Date();
var hour = date.getHours();
alert("hour: " + hour);
if (hour <= 11)
  alert("under 11");
else
  alert("over 11 ");
    window.location.href = "side_3.htm";
//else if (time>=11 && time<15)
// 
//else if (time>=15 && time<18)
// window.location.href = "side_3.htm";
//osv.

</SCRIPT>
er ikke så skrap til javascript
Avatar billede tjens Nybegynder
18. marts 2011 - 10:28 #8
alert er bare til at konstatere hvor langt dit script kommer.
Når den vises, ved du, at dit script kommer så langt.
Så skifter du alert-linien ud med den linie du ønsker udført.

Men mange else'r er aldrig godt.
Skift til switch:
var date = new Date();
var hour = date.getHours;
switch (hour)
{
  case 8:
  case 9:
  case 10:
    window.location.href = "side_1.htm";
    break;
  case 11:
  case 12:
  case 13:
  case 14:
    window.location.href = "side5.html";
    break;
  default:
    window.location.href = "side4711.html";
}
Hvad sidste afsnit default skal være ved jeg ikke.
Du kan fjerne den hvis du skal blive på den aktuelle side på alle andre tidspunkter.
Avatar billede hooh Nybegynder
18. marts 2011 - 14:23 #9
Hvis du har flere linier i din if-sætning, så skal der paranteser på.

din:

if (hour <= 11)
  alert("under 11");
else
  alert("over 11 ");
    window.location.href = "side_3.htm";


Skal være:
if (hour <= 11)
  alert("under 11");
else
{
  alert("over 11 ");
  window.location.href = "side_3.htm";
}
Avatar billede hooh Nybegynder
18. marts 2011 - 14:46 #10
if sætningen kan måske skrives nemmere..

if (time>20)
{
    //rammer 21,22,23,24
}
else if (time>18)
{
    //rammer 19,20
}
else if (time>15)
{
    //rammer 16,17,18
}
else if (time>11)
{
    //rammer 12,13,14,15,
}
else
{
    //rammer 1,2,3,4,5,6,7,8,9,10,11
}

Men jeg vil nok også foretække switch, som tjens foreslår.. :)
Avatar billede henrik6330 Nybegynder
09. april 2011 - 13:26 #11
tak for de mange gode svar
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
Kurser inden for grundlæggende programmering

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