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

[FRAGE] Javascript Counter

FreeLoop

New member
Hallo Zusammen

Ich möchte für meine Homepage Hyperlinks zu einem bestimmten freigeben und diese dann auch 3 Tage später wieder schliessen.
Das Script für das Freischalten des Links habe ich bereits gemacht, aber leider bringe ich es nicht hin zu programmieren, dass nach 3 Tagen der Hyperlink wieder deaktiviert wird.

Das Script sieht momentan so aus:


HTML:
<script type="text/javascript">
//<![CDATA[

    CountDownTimer('10/07/2015 11:09 AM', 'countdown1');

    function CountDownTimer(dt, id)
    {
        var end = new Date(dt);

        var _second = 1000;
        var _minute = _second * 60;
        var _hour = _minute * 60;
        var _day = _hour * 24;
        var timer;

        function showRemaining() {
            var now = new Date();
            var distance = end - now;
            if (distance < 0) {

                clearInterval(timer);
                document.getElementById(id).innerHTML = '<b><a href="deal123">Angebot jetzt Entdecken</a></b> (Gültig bis xx.yy.zzzz)';

                return;
            }
            var days = Math.floor(distance / _day);
            var hours = Math.floor((distance % _day) / _hour);
            var minutes = Math.floor((distance % _hour) / _minute);
            var seconds = Math.floor((distance % _minute) / _second);

        }

        timer = setInterval(showRemaining, 1000);
    }

//]]>
</script>
<div id="countdown1">
</div>

kann mir da jemand helfen?

Wäre super.
Danke, Gruss

Freeloop
 
Zuletzt bearbeitet von einem Moderator:
Hi also zuerst würde ich die Differenz zwischen dem einen und dem anderen Datums-Objekt wie folgt berechnen...

Code:
var diff = Math.abs(end - now);

das sollte eine Differenz in Millisekunden ergeben.
Oder du konvertierst jedes Datum mit
Code:
getTime()
in Millisekunden.

MfG jsxcii
 
das reine verstecken des links ist im übrigen augenwischerei, ich hoffe du hast dazwischen noch eine PHP prüfung drin die es wirklich abschottet
 
@jsxcii: Danke, verstehe ich das richtig. Du meinst ich soll
Code:
var distance = end - now;
mit
Code:
var diff = Math.abs(end - now);
ersetzen?

@TecEye: Nein habe ich nicht. Mir geht es nur drum, dass der Link zu Sonderaktionen automatisch um 0:00 AM wieder ausgeblendet wird. das löschen übernehme ich manuell.
 
Zuletzt bearbeitet:
Math.abs() ist hier kein guter Rat, da man immer eine positive Zahl bekommt. Somit kann man nicht mehr entscheiden, ob man vor oder nach dem Zeitpunkt ist...

Soll der Link denn immer nach 3 Tagen verschwiden oder kann das auch variieren? Im zweiten Fall bräuchtest du noch einen zweiten Parameter für den Endzeitpunkt.
 
@kkapsner: Der Aktuelle Fall wäre etwa so:
am 1. November 0:00:00 starten wir eine Aktion, die 3 Tage läuft, das heisst bis 3. November 23:59:59
die nächste Folgt am 4. November 0:00:00 und so weiter.

Alle Aktionen werden für einen Monat vorbereitet und haben eine eigene unterseite.
 
Das könnte man z.B. so lösen:
Code:
        var veryEnd = new Date(dt);
        veryEnd.setDate(veryEnd.getDate() + 3);
        window.setTimeout(
        	function(){
        		document.getElementById(id).innerHTML = "";
        	},
        	veryEnd.getTime() - Date.now()
        )
 
Danke allen für die Hilfe, das hat super geklappt :)

Gesamter Script:
Code:
<script type="text/javascript">
//<![CDATA[

    CountDownTimer('10/5/2015 08:01 AM', 'countdown1');

    function CountDownTimer(dt, id)
    {
        var end = new Date(dt);

        var _second = 1000;
        var _minute = _second * 60;
        var _hour = _minute * 60;
        var _day = _hour * 24;
        var timer;

        function showRemaining() {
            var now = new Date();
            var distance = end - now;
            if (distance < 0) {

                clearInterval(timer);
                document.getElementById(id).innerHTML = '<b><a href="deal123">Angebot jetzt Entdecken</a></b> (Gültig bis xx.yy.zzzz)';

            var veryEnd = new Date(dt);
            veryEnd.setDate(veryEnd.getDate() + 3);
                window.setTimeout(
        	function(){
        		document.getElementById(id).innerHTML = "";
        	},
        	veryEnd.getTime() - Date.now()
        )
                return;
            }
            var days = Math.floor(distance / _day);
            var hours = Math.floor((distance % _day) / _hour);
            var minutes = Math.floor((distance % _hour) / _minute);
            var seconds = Math.floor((distance % _minute) / _second);

        }

        timer = setInterval(showRemaining, 1000);
    }

//]]>
</script>
<div id="countdown1">
</div>

Gruss FreeLoop
 
Zurück
Oben