• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Nach Uhrzeit Verzeichnisvariable wechseln

Smidtgall

New member
Hallo,

ich bin ein absoluter noob, was Javascript angeht und bitte euch um Hilfe.

Ich habe eine Slideshow, bei der nach einer gewissen Uhrzeit das Verzeichnis gewechselt werden soll.

Das Konstrukt der Bilder ist wie folgt aufgebaut:
<img src="/verzeichnis/uhrzeit/bild.png" />

Nun soll alles was zwischen 18:15 Uhr und 6:15 Uhr das Verzeichnis auf
<img src="/bilder/12/01h.png" />

und alles was zwischen 6:16 Uhr und 18:14 auf
<img src="/bilder/00/01h.png" />

umgestellt werden. Wie könnte so etwas aussehen?

Ich danke vielmals für Tipps und Hinweise
 
Zeig' doch mal das, was du probiert hast, oder einen Testlink, wo wir uns das live ansehen können.
 
Mein Ansatz bislang :-(
data a und data b sollen jeweils unterschieden werden.
Und zwar immer zwischen 18:20 und 6:20 Uhr data b, sonst data a

Code:
var currentTime = new Date()
var hours = currentTime.getHours()

$("#slider").SliderChoose({
carousel:true, 
stopOnClick: true, 
autoPlay:true, 
transition:[1], 
animationSpeed:100,
speed:400, 
if (hours >= 18 || hours <= 6){
 data:b
          }
else {
 data:a
 },
fadeThumbsIn: true, 
showTooltips:false,
text: {previous: "zurueck", next: "vor"},
showCaption:false
 
Das sieht doch schon mal garnicht so schlecht aus. Deine if Statements werden allerdings so nicht funktionieren. Du kannst nämlich als Attribut für die SliderChoose Funktion keine if-Statements einbauen. Dafür musstest du vermutlich mit einer zusätzlichen Funktion arbeiten:
Code:
$("#slider").SliderChoose({
...,
data: function() {
  if (hours >= 18 || hours <= 6){
    // b verwenden
  } else {
    // a verwenden
  }
},
...
});

Was steht denn in a oder b drin?
 
Hey, vielen Dank für die prompte Antwort!

a und b sind jeweils Variablen, welche mit einem "Array" (?) gefüllt sind:

Code:
var b = [
          {"image":"01h.png","title":"Image 1"},
          {"image":"02h.png","title":"Image 2"},
          {"image":"03h.png","title":"Image 3"},
          {"image":"04h.png","title":"Image 4"}
];

Wenn ich es wie folgt einbaue, funktioniert es leider nicht:
Code:
data: function() {
 var currentTime = new Date()
 var hours = currentTime.getHours()
 if (hours >= 18 || hours <= 6){
  b} 
 else {
  a}
},
 
Du musst die Variable deklarieren oder mit return arbeiten.
 
Zuletzt bearbeitet:
Zusätzlich zu Julians Posting:

Wenn a und b deklariert sind und das Attribut data mit einem Array umgehen kann, sollte es so funktionieren:
Code:
$("#slider").SliderChoose({
...,
data: function() {
  if (hours >= 18 || hours <= 6){
    return b;
  } else {
    return a;
  }
},
...
});
 
Sowas kann man sehr elegant mit dem Trinitätsoperator lösen:
Code:
data: (hours >= 18 || hours <= 6)? b: a

PS: In der Fehlerkonsole findet man solche Syntaxprobleme, wie dein erster Versuch mit dem if...else..., recht schnell.
 
Zurück
Oben