javascript secondes - comment faire un compte à rebours





dynamique php (3)


Cela fonctionne bien comme un javascript normal.

<script>
var end = new Date('02/19/2012 10:1 AM');

    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('countdown').innerHTML = 'EXPIRED!';

            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);

        document.getElementById('countdown').innerHTML = days + 'days ';
        document.getElementById('countdown').innerHTML += hours + 'hrs ';
        document.getElementById('countdown').innerHTML += minutes + 'mins ';
        document.getElementById('countdown').innerHTML += seconds + 'secs';
    }

    timer = setInterval(showRemaining, 1000);
</script>
<div id="countdown"></div>

Votre sortie apparaît comme suit: -

1 jour 9 heures 3 minutes 22 secondes


METTRE À JOUR

Utilisation de fonctions:

<script>

    CountDownTimer('02/19/2012 10:1 AM', 'countdown');
    CountDownTimer('02/20/2012 10:1 AM', 'newcountdown');

    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 = 'EXPIRED!';

                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);

            document.getElementById(id).innerHTML = days + 'days ';
            document.getElementById(id).innerHTML += hours + 'hrs ';
            document.getElementById(id).innerHTML += minutes + 'mins ';
            document.getElementById(id).innerHTML += seconds + 'secs';
        }

        timer = setInterval(showRemaining, 1000);
    }

</script>
<div id="countdown"></div>
<div id="newcountdown"></div>

La sortie apparaîtra comme suit: -

0jours 23hrs 25mins 8secs

1 jour 23 heures 25 minutes 8 secondes

Je me demande si quelqu'un peut m'aider. Après des heures de recherches inlassables ici et sur le web, je n'arrive pas à trouver un compte à rebours simple en utilisant jquery. Je ne veux utiliser aucun type de plugin juste un simple code jquery pour le compte à rebours d'une date. J'ai réussi à trouver ce code ci-dessous. Mais même avec ce code en le plaçant dans mon site Web rien n'apparaît. J'ai ajouté le fichier jquery de jquery.com et ajouté les divs appropriés avec l'ID du counter et rien. Si quelqu'un peut m'expliquer ou me montrer comment faire un compte à rebours simple dans une fonction qui prend un format de date et renvoie un compte à rebours, j'apprécierais l'aide.

var end = new Date('02/19/2012 10:1 AM');

    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('countdown').innerHTML = 'EXPIRED!';

            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);

        document.getElementById('countdown').innerHTML = days + 'days ';
        document.getElementById('countdown').innerHTML += hours + 'hrs ';
        document.getElementById('countdown').innerHTML += minutes + 'mins ';
        document.getElementById('countdown').innerHTML += seconds + 'secs';
    }

    timer = setInterval(showRemaining, 1000);



Ce n'est pas jQuery, c'est JavaScript. Mais, de toute façon...

Vous l'avez presque compris. Le seul problème est var distance = end-now; . CA devrait etre:

var distance = end.getTime()-now.getTime();

En outre, vous ne devez pas utiliser += sur innerHTML . Au lieu de cela, utilisez une variable (exemple: var output = "" ) et ajoutez-y, puis assignez l' innerHTML à la fin.

Enfin, vérifiez que l'ID de la div correspond à l'ID que vous avez dans getElementById .




Wikipedia sur les fermetures :

En informatique, une fermeture est une fonction associée à un environnement de référence pour les noms non locaux (variables libres) de cette fonction.

Techniquement, en JavaScript , chaque fonction est une fermeture . Il a toujours accès aux variables définies dans la portée environnante.

Etant donné que la construction définissant la portée en JavaScript est une fonction et non un bloc de code comme dans beaucoup d'autres langages, ce que nous entendons par fermeture en JavaScript est une fonction utilisant des variables non locales définies dans une fonction environnante déjà exécutée .

Les fermetures sont souvent utilisées pour créer des fonctions avec des données privées cachées (mais ce n'est pas toujours le cas).

var db = (function() {
    // Create a hidden object, which will hold the data
    // it's inaccessible from the outside.
    var data = {};

    // Make a function, which will provide some access to the data.
    return function(key, val) {
        if (val === undefined) { return data[key] } // Get
        else { return data[key] = val } // Set
    }
    // We are calling the anonymous surrounding function,
    // returning the above inner function, which is a closure.
})();

db('x')    // -> undefined
db('x', 1) // Set x to 1
db('x')    // -> 1
// It's impossible to access the data object itself.
// We are able to get or set individual it.

ems

L'exemple ci-dessus utilise une fonction anonyme, qui a été exécutée une fois. Mais ce n'est pas obligé. Il peut être nommé (par exemple mkdb) et exécuté ultérieurement, en générant une fonction de base de données chaque fois qu'il est appelé. Chaque fonction générée aura son propre objet de base de données caché. Un autre exemple d'utilisation de fermeture est le cas où nous ne renvoyons pas une fonction mais un objet contenant plusieurs fonctions à des fins différentes, chacune de ces fonctions ayant accès aux mêmes données.





javascript