2016-08-08 37 views
-1

Ich versuche, ein einfaches JavaScript einzurichten. Wenn der Tag Sonntag oder Samstag ist, wird im HTML "Closed" geschrieben, oder wenn es später ist 17:30 Uhr, oder es ist früher als 9:00 Uhr, wird es auch geschlossen schreiben.Einrichten eines JavaScript, das schreibt, ob der Store geöffnet oder geschlossen ist

Mein Hauptproblem ist, dass die if-Anweisung immer wahr zu sein scheint. Ich habe mehrere Dinge ausprobiert, um das zu beheben, aber ohne Erfolg. Jede Hilfe würde sehr geschätzt werden.

Code: http://pastebin.com/R5kE6fX6

+0

Schreiben Sie die Anweisung nicht in "". if (true) statt if ("true") –

+0

Bitte geben Sie den Code in Ihre Frage ein, anstatt sich auf eine externe Seite zu verlassen –

+1

Die js-Zeit basiert auf Computerzeit, die unzuverlässig ist (einige Menschen kümmern sich nicht um ihre Computeruhr) also benutze server clock + serverside script (php) anstatt –

Antwort

0

Dies ist keine vollständige Antwort, es ist eher ein fortgeschrittener Kommentar zum Code-Styling.

Ihre if-Anweisungen sehen kompliziert aus, ich verstehe sie immer noch nicht. Um Ihren Code zu verbessern, machen Sie ihn lesbarer. Das erleichtert es Ihnen und uns, es zu verbessern. Zum Beispiel:

status="opened"; 

if(date=="wednesday"){ 
    if(time>closetime){ 
     status="closed. Its too late"; 
    } 
    if(time<opentime){ 
     status="closed. youre to early"; 
    } 
} else { 
    //code for other dates 
} 

//echo code 
document.write(status); 
+0

Verstanden, Entschuldigung haben weniger als 5 Wochen Erfahrung im Codieren mit und sehr neu in diesem Forum. Nochmals vielen Dank für die Hilfe. – Pepuso

+0

@Pepuso: Keine Sorge. Es gibt einfach so viele "könntest du das für mich machen" in diesem Forum, also bin ich momentan ein bisschen aggressiv. Ich lerne immer noch, so verstehe ich Ihre Sichtweise, aber ich lerne durch Lesen von Dokumenten und finde es selbst heraus. Ich denke stackoverflow sollte sich auf fortgeschrittene Probleme konzentrieren, die mit docs + debugging nicht lösbar sind. –

+0

Ich hätte wahrscheinlich gesagt, dass ich nicht wirklich die Antwort wollte, nur ein paar Hinweise, um mich in Bewegung zu bringen: p Egal, ich schätze die Hilfe . – Pepuso

1

Dieser Code Versuchen:

// Place back slashes in front of any grammar, used for checking open or closed based on day and time. 
var dayornight = new Date(); 
var opened = 9; 
var closed = [23, 59]; 
var closedThurs = 19; 
var closedWed = 16; 
var day = dayornight.getDay(); 

alert(day); 

if(day == 0 || day == 6 || dayornight.getHours() < opened) { 
    if(day == 4 && dayornight.getHours() >= closedThurs || day == 3 && dayornight.getHours() >= closedWed) { 
    if(dayornight.getHours() >= closed[0] && dayornight.getMinutes() >= closed[1]){ 

     document.write("<span class=\"Closed\">Closed</span>"); 
     alert("Closed is working"); 

    } 
    } 
} else { 
    document.write("<span class=\"Open\">Open</span>"); 
    alert("Opened else is working"); 
} 
+0

Es gibt jetzt false zurück, es scheint jedoch nicht wahr zurückzukehren. – Pepuso

+0

@Pepuso Was bedeutet, dass Logik möglicherweise falsch ist. Bitte mach deine Hausaufgaben. – feeela

+0

Theres immer noch ein logischer Fehler: Wenn der erste if ist wahr, aber der zweite istnt, gibt es nichts –

1

Sie testen, ob ein String mit Inhalt hat:

if("day == 0 || day == 6 || dayornight.getHours() < opened") {} 

In diesem Beispiel wird die ganze Bedingung ist eine Zeichenfolge (gekapselt von "). Und if("some string") wird true zurückgeben, solange die Zeichenfolge mindestens ein Zeichen enthält.

Sie müssen Bedingungen als JS-Code verwenden - was bedeutet, alle überflüssigen Anführungszeichen zu entfernen.

sollte diese Arbeit:

if(day == 0 || day == 6 || dayornight.getHours() < opened) {} 

By the way: Bitte starten Sie einen Code-Editor mit Syntax-Hervorhebung verwendet wird, während der Entwicklung. Wie Sie in den obigen zwei Schnipsel sehen können, ist eine Zeichenfolge vollständig in einer Farbe, während verschiedene Teile des Codes in einem Editor mit Syntaxhervorhebung unterschiedliche Farben erhalten können. Dies ist sehr hilfreich, wenn man solchen Fehlern gegenübersteht.

+0

Dies macht es so, dass es false zurückgibt. Aber es wird jetzt nicht wahr zurückkehren. @ JonasW hat darauf hingewiesen, dass ihre logischen Fehler darin waren, wenn du mir helfen kannst, etwas zu finden, würde ich es wirklich schätzen. – Pepuso

+0

@Pepuso Bitte machen Sie Ihre Hausaufgaben selbst.Fange an zu lernen, Code zu debuggen und Spaß daran zu haben, diese Fehler zu finden. Das ist, was ein Programmierer tut ... – feeela

+0

Ich versuche es. Manchmal kann ich nicht die richtige Antwort finden, nach der ich suche. Ich werde diese jedoch berücksichtigen. Vielen Dank. – Pepuso