Javascript Coundown Code zeigt nichts an?


Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Shorty1968

Erfahrenes Mitglied
Hallo ich möchte mir Folgender Javascript erweiterung erreichen das in meinem Shop die Tage,Std usw angezeigt werden bis bei Bestellung der Versand erfolgt.
Code:
new Date("<? echo date("M d, Y H:i:s"); ?>"); // <-- Serverzeit
//var Zeit = new Date(); <-- Clientzeit zum testen
var ServSec = Zeit.getSeconds();
var deadline = 14 // Uhr
// Feiertage : An folgenden Tagen die Versandcountdownbox auf Produktseiten ausblenden (Bei Feiertagen berücksichtigen die Box schon am Vortag ausblenden zu lassen)
var allefeiertage = [
// ALLE FEIERTAGE NRW!
"2018-03-29", // DONNERSTAG Ein Tag vor Karfreitag                      2018
"2018-03-30", // FREITAG        Karfreitag                                              2018
"2018-03-31", // SAMSTAG        vor Ostermontag                                 2018
"2018-04-01", // SONNTAG        vor Ostermontag                                 2018
"2018-04-02", // MONTAG         Ostermontag                                             2018

"2018-04-30", // MONTAG         vor Tag der Arbeit                              2018
"2018-05-01", // DIENSTAG       Tag der Arbeit                                  2018

"2018-05-09", // MITTWOCH       Ein Tag vor Christi Himmelfahrt 2018
"2018-05-10", // DONNERSTAG Christi Himmelfahrt                         2018

"2018-05-18", // FREITAG        vor Pfingstmontag                       2018
"2018-05-19", // SAMSTAG        vor Pfingstmontag                       2018
"2018-05-20", // SONNTAG        vor Pfingstmontag                       2018
"2018-05-21", // MONTAG         Pfingstmontag                   2018

"2018-05-30", // MITTWOCH       Ein Tag vor Fronleichnam                2018
"2018-05-31", // DONNERSTAG Fronleichnam                                        2018

"2018-10-02", // DIENSTAG       vor Tag der Deutschen Einheit   2018
"2018-10-03", // MITTWOCH       Tag der Deutschen Einheit               2018


"2018-10-31", // MITTWOCH       ein Tag vor Allerheiligen               2018
"2018-11-01", // DONNERSTAG Allerheiligen                                       2018


"2018-12-24", // MONTAG         Heiligabend                                             2018
"2018-12-25", // DIENSTAG   1. Weihnachtstag                            2018
"2018-12-26", // MITTWOCH   2. Weihnachtstag                            2018

"2018-12-31", // MONTAG         Silvester                                               2018
"2019-01-01"  // DIENSTAG       Neujahr                                         2018
//Im Letzten Wert des Arrays KEIN KOMMA!
];
function countdown() {
var Stunden = 23-Zeit.getHours();
var Minuten = 59-Zeit.getMinutes();
var Sekunden = 60-Zeit.getSeconds()-1;
var Stunden = Stunden+deadline;
if (Sekunden==60) { Sekunden=0; }
if (Minuten==60) { Minuten=0; }
if (Stunden == 0) Stunden = "00";
if (Stunden == 24) Stunden = "00";
if (Stunden >= 25) Stunden = Stunden-24;
if (Stunden <= 9 && Stunden != "00") Stunden = "0"+Stunden;
if (Minuten <= 9) Minuten = "0" + Minuten;
if (Sekunden <= 9) Sekunden = "0" + Sekunden;
if (Stunden == "00") {
    var Stundenfull = "</span>";
} else {
    var Stundenfull = Stunden+"</span> Std. ";
}
if (Stunden == "01") {
    var Stundenfull = "1</span> Std. ";
}
if (Stunden == "02") {
    var Stundenfull = "2</span> Std. ";
}
if (Stunden == "03") {
    var Stundenfull = "3</span> Std. ";
}
if (Stunden == "04") {
    var Stundenfull = "4</span> Std. ";
}
if (Stunden == "05") {
    var Stundenfull = "5</span> Std. ";
}
if (Stunden == "06") {
    var Stundenfull = "6</span> Std. ";
}
if (Stunden == "07") {
    var Stundenfull = "7</span> Std. ";
}
if (Stunden == "08") {
    var Stundenfull = "8</span> Std. ";
}
if (Stunden == "09") {
    var Stundenfull = "9</span> Std. ";
}
var Zeitausgabe = "<span class=\"countdownstunden\"><span class=\"countdownpointer\">" + Stundenfull + "<span class=\"countdownminuten\"><span class=\"countdownpointer\">" + Minuten + " </span> Min. </span>";
Uhrzeit.innerHTML = Zeitausgabe;
var weekdays = new Array();
weekdays[0] = "Sonntag";
weekdays[1] = "diesen Montag";
weekdays[2] = "diesen Dienstag";
weekdays[3] = "diesen Mittwoch";
weekdays[4] = "diesen Donnerstag";
weekdays[5] = "diesen Freitag";
weekdays[6] = "Samstag";
weekdays[7] = "diesen Montag";
var current_date = new Date("<? echo date("M d, Y H:i:s"); ?>"); // <-- Serverzeit
//var current_date = new Date(); <-- Clientzeit zum testen
if (Stunden<deadline)
weekday_value = current_date.getDay()
else
weekday_value = current_date.getDay()+1
if (weekday_value==6)
weekday_value = 7
if (weekday_value==0)
weekday_value = 7
if (Stunden<deadline&&weekday_value==6&&weekday_value==0)
Tagangabe.innerHTML = ""
else
Tagangabe.innerHTML = weekdays[weekday_value]
ServSec++;
if (ServSec > 60) { ServSec = 1; }
Zeit.setSeconds(ServSec);
setTimeout("countdown()", 1000);
function isoDateString(d){
  function pad(n){return n<10 ? '0'+n : n}
  return d.getFullYear()+'-'+
    pad(d.getMonth()+1)+'-'+
    pad(d.getDate())
}
var today = new Date("<? echo date("M d, Y H:i:s"); ?>");
Array.prototype.contains = function(elem)
{for (var i in this)
{if (this[i] == elem) return true;}
return false;};
var b = isoDateString(today);
if (allefeiertage.contains(b))
document.getElementById("versandcountdown").style.display = "none";
else
document.getElementById("versandcountdown").style.display = "block";
};
window.onload = countdown;
</script>
<?php
}
?>
HTML:
<div id="versandcountdown">
Innerhalb von <span id="Uhrzeit"><span class="countdownstunden"><span class="countdownpointer">00</span> Std. <span class="countdownminuten"><span class="countdownpointer">00 </span> [URL='http://www.php.net/min']Min[/URL]. </span></span></span>
bestellen, Versand <span id="Wann"></span>
<span id="Tagangabe">wird berechnet...</span>
</div>
Was habe ich Falsch gemacht,die Browser Konsole zeigt mir keinen fehler an.

https://schnaepchenpiet.shop/PC-Zubehoer/P706-Android-4-4-4-Mini-Tablet::3.html
 

Shorty1968

Erfahrenes Mitglied
Bei mir werden nun Zahlen angezeigt aber er zählt nicht runter,egal wie lange ich warte es bleiben immer die Selben Zahlen,auf deiner Test Seite zählt er aber runter.

Woran könnte das bei mir liegen?
 

basti1012

Erfahrenes Mitglied
Ich gebe dir mal den ganzen Code .
Kopiere den mal bei dir rein und teste dann mal.
Code:
<script>

var Zeit=new Date("<? echo date("M d, Y H:i:s"); ?>");
var ServSec = Zeit.getSeconds();
var deadline = 14;
var allefeiertage = [
"2018-03-29", // DONNERSTAG Ein Tag vor Karfreitag                      2018
"2018-03-30", // FREITAG        Karfreitag                                              2018
"2018-03-31", // SAMSTAG        vor Ostermontag                                 2018
"2018-04-01", // SONNTAG        vor Ostermontag                                 2018
"2018-04-02", // MONTAG         Ostermontag                                             2018
"2018-04-30", // MONTAG         vor Tag der Arbeit                              2018
"2018-05-01", // DIENSTAG       Tag der Arbeit                                  2018
"2018-05-09", // MITTWOCH       Ein Tag vor Christi Himmelfahrt 2018
"2018-05-10", // DONNERSTAG Christi Himmelfahrt                         2018
"2018-05-18", // FREITAG        vor Pfingstmontag                       2018
"2018-05-19", // SAMSTAG        vor Pfingstmontag                       2018
"2018-05-20", // SONNTAG        vor Pfingstmontag                       2018
"2018-05-21", // MONTAG         Pfingstmontag                   2018
"2018-05-30", // MITTWOCH       Ein Tag vor Fronleichnam                2018
"2018-05-31", // DONNERSTAG Fronleichnam                                        2018
"2018-10-02", // DIENSTAG       vor Tag der Deutschen Einheit   2018
"2018-10-03", // MITTWOCH       Tag der Deutschen Einheit               2018
"2018-10-31", // MITTWOCH       ein Tag vor Allerheiligen               2018
"2018-11-01", // DONNERSTAG Allerheiligen                                       2018
"2018-12-24", // MONTAG         Heiligabend                                             2018
"2018-12-25", // DIENSTAG   1. Weihnachtstag                            2018
"2018-12-26", // MITTWOCH   2. Weihnachtstag                            2018
"2018-12-31", // MONTAG         Silvester                                               2018
"2019-01-01"  // DIENSTAG       Neujahr                                         2018
];
function countdown() {
var Stunden = 23-Zeit.getHours();
var Minuten = 59-Zeit.getMinutes();
var Sekunden = 60-Zeit.getSeconds()-1;
var Stunden = Stunden+deadline;
if (Sekunden==60) { Sekunden=0; }
if (Minuten==60) { Minuten=0; }
if (Stunden == 0) Stunden = "00";
if (Stunden == 24) Stunden = "00";
if (Stunden >= 25) Stunden = Stunden-24;
if (Stunden <= 9 && Stunden != "00") Stunden = "0"+Stunden;
if (Minuten <= 9) Minuten = "0" + Minuten;
if (Sekunden <= 9) Sekunden = "0" + Sekunden;
if (Stunden == "00") {
    var Stundenfull = "</span>";
} else {
    var Stundenfull = Stunden+"</span> Std. ";
}
if (Stunden == "01") {
    var Stundenfull = "1</span> Std. ";
}
if (Stunden == "02") {
    var Stundenfull = "2</span> Std. ";
}
if (Stunden == "03") {
    var Stundenfull = "3</span> Std. ";
}
if (Stunden == "04") {
    var Stundenfull = "4</span> Std. ";
}
if (Stunden == "05") {
    var Stundenfull = "5</span> Std. ";
}
if (Stunden == "06") {
    var Stundenfull = "6</span> Std. ";
}
if (Stunden == "07") {
    var Stundenfull = "7</span> Std. ";
}
if (Stunden == "08") {
    var Stundenfull = "8</span> Std. ";
}
if (Stunden == "09") {
    var Stundenfull = "9</span> Std. ";
}
var Zeitausgabe = "<span class=\"countdownstunden\"><span class=\"countdownpointer\">" + Stundenfull + "<span class=\"countdownminuten\"><span class=\"countdownpointer\">" + Minuten + " </span> Min. </span>";
Uhrzeit.innerHTML = Zeitausgabe;
var weekdays = new Array();
weekdays[0] = "Sonntag";
weekdays[1] = "diesen Montag";
weekdays[2] = "diesen Dienstag";
weekdays[3] = "diesen Mittwoch";
weekdays[4] = "diesen Donnerstag";
weekdays[5] = "diesen Freitag";
weekdays[6] = "Samstag";
weekdays[7] = "diesen Montag";
var current_date = new Date("<? echo date("M d, Y H:i:s"); ?>");
if (Stunden<deadline)
weekday_value = current_date.getDay()
else
weekday_value = current_date.getDay()+1
if (weekday_value==6)
weekday_value = 7
if (weekday_value==0)
weekday_value = 7
if (Stunden<deadline&&weekday_value==6&&weekday_value==0)
Tagangabe.innerHTML = ""
else
Tagangabe.innerHTML = weekdays[weekday_value]
ServSec++;
if (ServSec > 60) { ServSec = 1; }
Zeit.setSeconds(ServSec);


setTimeout(function(){countdown()}, 1000);
function isoDateString(d){
  function pad(n){return n<10 ? '0'+n : n}
  return d.getFullYear()+'-'+
    pad(d.getMonth()+1)+'-'+
    pad(d.getDate())
}


var today = new Date("<? echo date("M d, Y H:i:s"); ?>");
Array.prototype.contains = function(elem)
{for (var i in this)
{if (this[i] == elem) return true;}
return false;};
var b = isoDateString(today);
if (allefeiertage.contains(b))
document.getElementById("versandcountdown").style.display = "none";
else
document.getElementById("versandcountdown").style.display = "block";
};
window.onload = countdown;
</script>


<div id="versandcountdown">
<span id="Uhrzeit"><span class="countdownstunden"><span class="countdownpointer">00</span> Std. <span class="countdownminuten"><span class="countdownpointer">00 </span> [URL='http://www.php.net/min']Min[/URL]. </span></span></span>
bestellen, Versand <span id="Wann"></span>
<span id="Tagangabe">wird berechnet...</span>
</div>

Hatte nur kleinigkeiten geändert,wie vergessenes ; und falsch auskommentierten Text. Mehr wahr das nicht
 

basti1012

Erfahrenes Mitglied
Stimmt sogar garnicht.Ich habe am anfang das <?php weg gemacht und mit <script> ausgetauscht. Dann unten das <?php } ?> weg gemacht und dann läuft es eigentlich schon.
Weiß ja nicht ob bei dir vor dem geposteten Code noch mehr Code ist ,fals nein ist das von mir beschriebene da vollkommen falsch an Platz und kann und muß weg damit es läuft.
Fals da aber noch Code ist können wir das ja nicht sehen.
Aufjedenfall mußten die Sachen geändert werden bei den geposteten Code damit es läuft
 

Shorty1968

Erfahrenes Mitglied
Danke aber auch der von dir gepostete Code zählt bei mir nicht runter,ja in der Datei in die der Code rein kommt gibt es noch einen anderen Code,der aber mit diesem eigentlich nichts zutun hat.

Dann Zeigt der Text wider an "Versand am Dienstag" aber nun müste dort oder sollte dort stehen "Versand noch heute",es müsste immer wechseln je nach dem wann der versand wäre.
 

basti1012

Erfahrenes Mitglied
Bei mir steht jetzt versand diesen Dienstag. Also richtig oder ?
Kuck doch mal was deine Cache macht. Lösche die doch mal. Fals der von mir gepostete Link das anzeigt was er soll dann muß der Fehler ja irgendwo an Cache ,oder am rest Code liegen. Hast du mal versucht nur den gepostet Code zu testen ? Ohne irgendwelchen anderen Code? Du hast da ja auch php mit drinne. Läuft das Script auch nicht mit der JS Variante die du auskommentiert hast?
 

basti1012

Erfahrenes Mitglied
das kommt mir so vor als wenn bei dir der timer nicht geht.
Schreib da mal eine Console rein und kuck mal ob der Timer ünerhaupt arbeitet
Code:
setTimeout(function(){
countdown();
console.log('Timeout ok');
}, 1000);

Wenn dann in der Console nix stehen sollte dann sind wir schon mal auf den richtigen weg.Eigentlich sollte jetzt jede Sekunde der Eintrag in der console stehen.
Hast du mal einen anderen Browser getestet ?
Welchen Browser nutzt du den ?
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…