# Zwischen Design und Programmierung: Countdown "Bestellen Sie innerhalb xxx"

**URL:** <https://forum.shopware.com/t/zwischen-design-und-programmierung-countdown-bestellen-sie-innerhalb-xxx/54814>\
**Category:** Programmierung\
**Created:** [27. August 2018 um 07:46 UTC](https://forum.shopware.com/t/zwischen-design-und-programmierung-countdown-bestellen-sie-innerhalb-xxx/54814 "2018-08-27T07:46:44Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![dervise](https://avatars.discourse-cdn.com/v4/letter/d/c4cdca/32.png) [@dervise](https://forum.shopware.com/u/dervise)\
**Post date:** [27. August 2018 um 07:46 UTC](https://forum.shopware.com/t/zwischen-design-und-programmierung-countdown-bestellen-sie-innerhalb-xxx/54814/1 "2018-08-27T07:46:44Z")

</div>

Hallo Zusammen,&nbsp;

ich bin erst sehr kurz mit Shopware unterwegs und habe mal wieder eine Frage:&nbsp;

Ich würde gerne auf unseren Artikelseiten unter der Verfügbarkeit einen Timer einstellen welcher Täglich bis 16:00 zählt. (Letzte Abholung).

Mein Versuch sieht wie Folgt aus:&nbsp;

Textfeld: DetailDataInfoInStock&nbsp;

```
Sofort versandfertig, Lieferzeit ca. 1-3 Werktage   
 test 

var updateTime = function(){
    var now = new Date();
    var day = now.getDay();
    var end;

    if(day >= 1 && day <= 5) {
        end = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 16, 0, 0, 0);    
    } else {
        end = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 12, 0, 0, 0);
    }

    var timeleft = end.getTime() - now.getTime();
    var diff = new Date(timeleft);
    
    if(timeleft >= 0){
         jQuery("#timeleft").html("Versand noch heute: Bestellen Sie innerhalb" + diff.getHours() + " Stunden " + diff.getMinutes() + " Minuten und wir versenden Ihr Paket noch Heute!");
    }

  }
  
  var run = setInterval(updateTime,1000);
});

```

Leeeeider wird das Script nicht ausgeführt und ich finde meinen Fehler nicht…&nbsp;

Habe ich hier etwas falsch mit SW gemacht?&nbsp;

&nbsp;

Freue mich über jeden Tip

&nbsp;

Lg

&nbsp;

Marsel

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [27. August 2018 um 09:43 UTC](https://forum.shopware.com/t/zwischen-design-und-programmierung-countdown-bestellen-sie-innerhalb-xxx/54814/2 "2018-08-27T09:43:38Z")

</div>

> setInterval(updateTime,1000)

Gehört das nicht außerhalb der Function rein?&nbsp;

&nbsp;

---

<div class="post-metadata">

**Author:** ![dervise](https://avatars.discourse-cdn.com/v4/letter/d/c4cdca/32.png) [@dervise](https://forum.shopware.com/u/dervise)\
**Post date:** [27. August 2018 um 09:56 UTC](https://forum.shopware.com/t/zwischen-design-und-programmierung-countdown-bestellen-sie-innerhalb-xxx/54814/3 "2018-08-27T09:56:28Z")

</div>

Hi @R4M‍,&nbsp;

habe es mal getestet, scheint bei mir in beiden versionen zu laufen:&nbsp;

[https://jsfiddle.net/au80jpq6/3/](https://jsfiddle.net/au80jpq6/3/)

leider läuft der code jedoch in der Artikel Ansicht noch nicht und das „test“ wird nicht überschrieben

 ![](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/3/3184fd1728f3e9018d5dc1944176c6fdb0d23cb7.png)

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [27. August 2018 um 10:12 UTC](https://forum.shopware.com/t/zwischen-design-und-programmierung-countdown-bestellen-sie-innerhalb-xxx/54814/4 "2018-08-27T10:12:56Z")

</div>

Du hast hier einiges verdreht. jQuery musst du nicht mehr einbinden, da es bereits im Shopware ist. Ganz wichtig, dich mit Shopware und derren Aufbau befassen, blind kopieren und einfügen geht in die Hose.

```
 test 

var updateTime = function(){
    var now = new Date();
    var day = now.getDay();
    var end;

    if(day >= 1 && day <= 5) {
        end = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 16, 0, 0, 0);    
    } else {
        end = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 12, 0, 0, 0);
    }

    var timeleft = end.getTime() - now.getTime();
    var diff = new Date(timeleft);
    
    if(timeleft >= 0){
         $("#timeleft").html("Versand noch heute: Bestellen Sie innerhalb" + diff.getHours() + " Stunden " + diff.getMinutes() + " Minuten und wir versenden Ihr Paket noch Heute!");
    }
};
var run = setInterval(updateTime,1000);

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![christiantrade](https://avatars.discourse-cdn.com/v4/letter/c/c4cdca/32.png) [@christiantrade](https://forum.shopware.com/u/christiantrade)\
**Post date:** [27. August 2018 um 10:13 UTC](https://forum.shopware.com/t/zwischen-design-und-programmierung-countdown-bestellen-sie-innerhalb-xxx/54814/5 "2018-08-27T10:13:00Z")

</div>

Warum so kompliziert?

Schnapp dir doch einfach nen jQuery Plugin. Hier nen Beispiel -\>&nbsp;[https://jsfiddle.net/xpvt214o/684814/](https://jsfiddle.net/xpvt214o/684814/)

Hier nutze ich&nbsp;[https://jquerytimer.com/](https://jquerytimer.com/)

Und dann im Callback eben deinen Text.

Man muss dazu sagen, dass du jQury doppelt gemoppelt einbindest und eine solche Umsetzung sehr dirty ist. Ich empfehle dir dringend mal die Docs zu lesen, insbesondere über [jQuery & den Statemanager, sowie jQuery Plugins in Shopware](https://developers.shopware.com/designers-guide/javascript-statemanager-and-pluginbase/).

Davon abgesehen muss der Funktionsaufruf natürlich außerhalb der Funktion sein 😉

---

<div class="post-metadata">

**Author:** ![dervise](https://avatars.discourse-cdn.com/v4/letter/d/c4cdca/32.png) [@dervise](https://forum.shopware.com/u/dervise)\
**Post date:** [27. August 2018 um 10:22 UTC](https://forum.shopware.com/t/zwischen-design-und-programmierung-countdown-bestellen-sie-innerhalb-xxx/54814/6 "2018-08-27T10:22:49Z")

</div>

&nbsp;

> [@christiantrade schrieb:](https://forum.shopware.com/profile/26830/christiantrade "christiantrade")
> 
> Warum so kompliziert?
> 
> Schnapp dir doch einfach nen jQuery Plugin. Hier nen Beispiel -\>&nbsp;[https://jsfiddle.net/xpvt214o/684814/](https://jsfiddle.net/xpvt214o/684814/)
> 
> Hier nutze ich&nbsp;[https://jquerytimer.com/](https://jquerytimer.com/)
> 
> Und dann im Callback eben deinen Text.
> 
> Man muss dazu sagen, dass du jQury doppelt gemoppelt einbindest und eine solche Umsetzung sehr dirty ist. Ich empfehle dir dringend mal die Docs zu lesen, insbesondere über [jQuery & den Statemanager, sowie jQuery Plugins in Shopware](https://developers.shopware.com/designers-guide/javascript-statemanager-and-pluginbase/).
> 
> Davon abgesehen muss der Funktionsaufruf natürlich außerhalb der Funktion sein ![;)](https://dub1.discourse-cdn.com/flex013/resources/emoji/wink.png ";)")

Werde ich mir ansehen :)&nbsp;&nbsp;

lg und Danke für die Tips&nbsp;

&nbsp;
