PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Öffnungszeiten eines Shops mit Javascript anzeigen


Geldmann3
2017-09-10, 12:47:36
Hallo zusammen,

ich bin gerade dabei einen kleinen Onlineshop zu erstellen allerdings bin ich kein Javascript Crack.

Ziel ist, dass auf der Seite in einem Text angezeigt wird ob der Laden gerade geöffnet oder geschlossen ist. Zuerst habe ich mir das sehr einfach vorgestellt, da ich lediglich die Tageszeit auslesen muss und anschließend abfrage in welchem Tageszeitenblock ich mich gerade befinde.

Dazu habe ich folgenden Code:
if((today.getHours() >=0) && (today.getHours() <=8)){
document.write("Der Laden ist leider noch geschlossen")
}
document.write ;if((today.getHours() >=8) && (today.getHours() <=17)){
document.write("Der Laden ist geöffnet")
}
document.write ;if((today.getHours() >=8) && (today.getHours() <=17)){
document.write("Der Laden ist leider bereits geschlossen")
}

Aaaaber, jetzt kommts. Und das hat mir einen gehörigen Strich durch die einfache Rechnung gemacht. Samstag und Sonntag herrschen nämlich andere Öffnungszeiten als in der Woche. Fällt jemanden hierzu eine Lösung ein? Kann ich den Wochentag einfach mit Javascript auslesen? Ich habe es mit

if(now.getDay() == 7){
// hier der oben stehende Code
}
versucht, doch ich bekomme als Ergebnis dann keine Ausgabe mehr.

Danke zusammen.

Edit: Ok, jetzt habe ich es hinbekommen mit

var d = new Date();
var now = d.getDay();
if(now == 0){

Sephiroth
2017-09-10, 17:07:14
In JavaScript und dem Date-Objekt werden die Wochentage von 0-6 numeriert, wobei 0 der Sonntag ist und 6 der Samstag.

siehe https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getDay

p.s.
1) nimm kein document.write sondern ändere den inhalt (innerHtml) des html-elements, wo der text rein soll. z.b. ein span oder p.

2) du nimmst die lokale uhrzeit beim client. die stimmt mit der zeit vom laden aber nur überein, wenn der client die selbe zeitzone eingestellt hat. daher wäre es besser mit den UTC-Zeiten zu arbeiten und entsprechend das offset für die zeitzone vom laden zu addieren.

Geldmann3
2017-09-10, 17:22:17
Das musste ich mittlerweile feststellen.

Warum zur Hölle ist Sonntag 0? Und nicht 6 oder 7?

PatkIllA
2017-09-10, 17:38:34
Das musste ich mittlerweile feststellen.

Warum zur Hölle ist Sonntag 0? Und nicht 6 oder 7?
Weil in manchen Gegenden (unter anderem die USA) die Woche am Sonntag beginnt. Und zählen geht bei 0 los.
Wenn du in Bibliotheken für Datums und Zeitverarbeitung schaust wird einem eh ganz anders was da alles unterschiedlich ist. Dinge wie Sommer/Winterzeit umstellung, Zeitzonenzugehörigkeit wechseln teilweise sogar noch historisch. Deshalb auf gar keinen Fall da selbst was programmieren. Das geht unter Garantie schief.

Geldmann3
2017-09-10, 17:43:10
Danke, das die Woche in den USA am Sonntag los geht, wusste ich gar nicht. Arbeiten sie dort nicht auch von Montag bis Freitag?

Dass man von programmieren mit Zeitzonen die Finger lassen soll, wird einem spätestens nach diesem Video klar:
-5wpm-gesOY

Mosher
2017-09-11, 16:32:40
Das musste ich mittlerweile feststellen.

Warum zur Hölle ist Sonntag 0? Und nicht 6 oder 7?

Kulturhistorisch ist auch bei uns Sonntag der erste Tag der Woche.
Bildung bildet.

Danke, das die Woche in den USA am Sonntag los geht, wusste ich gar nicht. Arbeiten sie dort nicht auch von Montag bis Freitag?

Dass man von programmieren mit Zeitzonen die Finger lassen soll, wird einem spätestens nach diesem Video klar:
http://youtu.be/-5wpm-gesOY
Wieso sollte man "die Finger davon lassen", bloß weil es ein paar Dinge zu beachten gibt?

Man sollte die Finger vom Programmieren lassen, wenn man keine Lust hat, sich um Spezial- und Fehlerfälle zu kümmern bzw. ein paar Vorüberlegungen zu tätigen, bevor man draufloswurschtelt, da gebe ich dir Recht.

Geldmann3
2017-09-11, 20:58:21
Das war mir nicht klar, jetzt bin ich ein Stück gebildeter.

Danke für den Beitrag Mosher.

PatkIllA
2017-09-11, 21:02:23
Wieso sollte man "die Finger davon lassen", bloß weil es ein paar Dinge zu beachten gibt?

Man sollte die Finger vom Programmieren lassen, wenn man keine Lust hat, sich um Spezial- und Fehlerfälle zu kümmern bzw. ein paar Vorüberlegungen zu tätigen, bevor man draufloswurschtelt, da gebe ich dir Recht.Trotzdem ist es unsinnig etwas kompliziertes nachzuprogrammieren was es schon fertig getestet gibt. Bei dem Zeitkrams muss man auch dauernd weiterwarten.
Das würde unter das Not-invented-here-Syndrom fallen.
Der mögliche Benefit muss da schon im Verhältnis liegen, wenn es nicht nur um den Lerneffekt geht. Praktisch steckt man in der Softwareentwicklung die meiste Zeit vorhandene Komponenten zusammen.

Mosher
2017-09-11, 21:39:19
Trotzdem ist es unsinnig etwas kompliziertes nachzuprogrammieren was es schon fertig getestet gibt. Bei dem Zeitkrams muss man auch dauernd weiterwarten.
Das würde unter das Not-invented-here-Syndrom fallen.
Der mögliche Benefit muss da schon im Verhältnis liegen, wenn es nicht nur um den Lerneffekt geht. Praktisch steckt man in der Softwareentwicklung die meiste Zeit vorhandene Komponenten zusammen.
Ich habe das so schnippisch formuliert, da der TS von der Sorte "Die Materie ist schuld daran, dass sie so kompliziert ist" ist und eigene Verfehlungen erst an zweiter oder dritter Stelle in Erwägung zieht. Das war schon vor 10 Jahren so, als es um Doppelbrüche ging und er lieber die Leute angepöbelt hat, die ihm die Sache erklären wollten, anstatt einfach einzusehen, dass nicht alle Mathebücher der Welt falsch liegen, sondern er.

Setzt sich hier wunderbar fort mit der Verwunderung über den Sonntag als Tag 1. Kann man in 2 Sekunden googeln, aber lieber erst ein Wtf loslassen, passt hervorragend ins Bild.

Der Ansatz im ersten Posting ist naiv hoch naiv, aber anstatt sich selbst zu hinterfragen, kommt das Wtf. Da sollte man meinen, der Junge hätte mit der Zeit etwas Demut gelernt, aber nee..

Zum Rest: Natürlich ist es Käse, das Rad immer wieder neu zu erfinden. Wenn ich mir aber einen Schubkarren baue, dann sollte ich wenigstens wissen, wo ich ein Rad herbekomme, bevor ich einen Quader hinbaue und dann die Physik anpöbele, warum die Scheiße nicht funktioniert.

Geldmann3
2017-09-12, 12:59:56
Danke nochmal Mosher, für deinen Beitrag!

Kannst Du mir vielleicht mal den Beitrag zeigen, in dem ich vor 10 Jahren Leute angepöbelt habe? Ich erinnere mich sicher an viele unwissende Beiträge die ich verfasst habe, doch ich erinnere mich nicht daran herumgepöbelt zu haben. Doch ich könnte mich auch täuschen. :D

"Die Materie ist schuld daran, dass sie so kompliziert ist"
HAHAHA, ich kann es nicht ausschließen, sowas in den letzten 10 Jahren mal geschrieben zu haben, doch ich fände es schon lustig, das mal zu sehen. ;D

Edit: Hab mal ein bisschen recherchiert, wir haben tatsächlich vor 6 Jahren schon geschrieben^^ Doch herumgepöbelt habe ich da nicht, jedenfalls konnte ich den Teil nicht finden. Bin immer aus jeglichen Gepöbel und Trolldiskussionen herausgeblieben und ignoriere angreifende Beiträge in der Regel, weil sie meine Zeit nicht wert sind.

Gast
2017-09-12, 22:29:57
Um noch etwas zum Thema beizutragen:

Moment.js (https://momentjs.com/) dürfte dir eine grosse Hilfe sein, der de facto Standard für Datums- und Zeithandling in JS.