javascript > time of hell

Titretime of hell
Postée le20-12-2008
Affichée615
Mini-lien
Description

new Duration({hours:45,minutes:30,seconds:5}); renvoie pas le bon truc

EtatContient des erreurs. Contient des erreurs.
Code d'insertion
Options
Afficher les numéros de lignes  Mettre la source en plein ecran  Selectionner la source  Partager sur Facebook 
Téléchargement Telecharger en format txt  Telecharger en format pdf  Telecharger en format js
Plein ecran
var Duration = function (o) {
   
    //
    var days = 0,
        seconds = 0,
        miliseconds = 0;
       
    return ({
        /**
         *  Initialize the Duration Object
         *  add everything in seconds and finally set seconds / days
         *  @method set
         *  @param {object} obj object litteral with relevant informations
         */

        set: function (obj) {
            days = 0;
            seconds = 0;
            miliseconds = 0;
            return this.add(obj);
        },
        /**
         *  Add a relative amount of time to the object
         *  @method add
         *  @param {object} obj object litteral with relevant informations
         */

        add: function (obj) {
            if (obj) {
                if (obj.weeks)  {days += obj.weeks * 7;}
                if (obj.days)   {days += obj.days;}
                if (obj.hours)   {seconds += obj.hours * 3600;}
                if (obj.minutes) {seconds += obj.minutes * 60;}
                if (obj.seconds) {seconds += obj.seconds;}
                if (obj.miliseconds) {miliseconds += obj.miliseconds;}
                if (seconds > 3600*24) {
                    days += (seconds - (seconds % (3600*24))) / (3600*24);
                }
                seconds %= (3600*24);
            }
            return this;
        },
        /**
         *  Return the duration in miliseconds
         *  @method getTime
         *  @return {integer} duration in miliseconds
         */

        getDuration: function (format) {
            switch (format) {
                case "seconds":
                        return (days*3600*24 + seconds);
                    break;
                case "miliseconds":
                        return ((days*3600*24) + seconds)*1000 + miliseconds
                    break;
                // return seconds by default
                default:
                    return (days*(3600*24) + seconds);
            }
        },
        /**
         *  When asked, this object is a {}
         *  @method valueOf
         *  @return {object} contains days, seconds and miliseconds property
         */
/*
        valueOf: function () {
            return {
                "days": days,
                "seconds": seconds,
                "miliseconds": miliseconds
            };
        }*/

    }).set(o);
};