Montag bis Freitag 09:00 - 15:00 Uhr
Forum
 
06.04.2017, 19:31

Inhalte im Artikeldetail-Template abhängig von Datum oder Uhrzeit

Sehr geehrte Kunden,

vor ein paar Monaten hatten wir in einem Update aufgezeigt, wie man im Suchergebnis einzelne Banner abhängig von Datum oder Uhrzeit platzieren kann. Siehe dazu: Einzelne-Banner-im-Suchergebnis-abhaengig-von-Datum-oder-Uhrzeit.html.

Das selbe ist nun auch im Template der Artikeldetailanzeige möglich!

Das Prinzip ist dasselbe wie schon im o.g. Update beschrieben:
#von_datum#~~201702011200~~
Ich werde nur eingeblendet, wenn das aktuelle Datum nach dem 01.02.2017 11:59 Uhr liegt und wenn noch nicht der 01.10.2017 17:01 Uhr erreicht ist.
~~201710011700~~#bis_datum#

#von_uhrzeit#~~1200~~
Ich werde nur eingeblendet, wenn wenn die aktuelle Uhrzeit zwischen 12:00 und 14:00 Uhr ist.
~~1400~~#bis_uhrzeit#

Gepaart mit einem Timer:

Es gibt Shops, die Ihre Kunden darauf hinweisen, dass wenn man jetzt noch bestellt, das Paket an dem Tag noch in den Versand geht. Meist sogar gepaart mit einem Timer, der die restlichen Stunden/Minuten anzeigt, bis dieser Vorteil wegfällt.
So etwas animiert ja den ein oder anderen schwachen Geist, den Klick auf Kaufen auszuführen.

Angenommen Sie möchten einen solchen Hinweis zwischen 8 und 14 Uhr einblenden, dann wäre das hier ein Beispielcode:
#von_uhrzeit#~~800~~
<script type="text/javascript">
var CDown = function() {this.state=0;this.counts=[];this.interval=null;}
CDown.prototype = {init: function(){this.state=1;var self=this;this.interval=window.setInterval(function(){self.tick();}, 1000);},
add: function(date,id){this.counts.push({d:date,id:id});this.tick();if(this.state==0){this.init();} },
expire: function(idxs){for(var x in idxs) {this.display(this.counts[idxs[x]], "Now!");this.counts.splice(idxs[x], 1);} },
format: function(r){var pre='',post='',divide=', ',out="";
if(r.h != 0){out += pre+r.h +" "+((r.h==1)?"Stunde":"Stunden")+post+divide;}
out += pre+r.m +" "+((r.m==1)?"Minute":"Minuten")+post+divide;
out += pre+r.s +" "+((r.s==1)?"Sekunde":"Sekunden")+post+divide;
return out.substr(0,out.length-divide.length);},
math: function(work){var y=w=d=h=m=s=ms=0; ms=(""+((work%1000)+1000)).substr(1,3);work=Math.floor(work/1000);y=Math.floor(work/31536000);w=Math.floor(work/604800); d=Math.floor(work/86400);work=work%86400;h=Math.floor(work/3600);work=work%3600;m=Math.floor(work/60);work=work%60;s=Math.floor(work); return {y:y,w:w,d:d,h:h,m:m,s:s,ms:ms};},
tick: function(){var now=(new Date()).getTime(),expired=[],cnt=0,amount=0;
if(this.counts){for(var idx=0,n=this.counts.length; idx<n; ++idx){cnt=this.counts[idx];amount=cnt.d.getTime()-now; if(amount<0){expired.push(idx);}else{this.display(cnt, this.format(this.math(amount)));} } }
if(expired.length>0) this.expire(expired); if(this.counts.length==0){window.clearTimeout(this.interval);} },
display: function(cnt,msg){document.getElementById(cnt.id).innerHTML=msg;} };
window.onload=function(){var cdown = new CDown(); cdown.add(new Date(#akt_y,#akt_m,#akt_d,14,0,0), "countbox1");};
</script>
<div style="padding:20px;margin-top:10px;border: 1px solid #BBBBBB;border-radius:2px; background-color:#DDDDDD;font-size:18px;text-align:center;">Wenn Sie diesen Artikel in den nächsten <span id="countbox1"></span> kaufen, erfolgt der Versand garantiert noch heute!</div>
~~1400~~#bis_uhrzeit#

Und ca. so würde das live ausschauen:

Natürlich muss man schlussendlich das ganze noch an das eigene CI anpassen und bei Responsive-Shops ist es ja noch etwas komplizierter, da es ja auch auf einem Handy gut aussehen muss. Bei Bedarf übernimmt den Einbau auch kostenpflichtig unsere Mannschaft hier. Sprechen Sie uns an.