Comparer du temps en utilisant un moment.js dans un format minute qui ne réinitialise pas l'heure

StackOverflow https://stackoverflow.com//questions/22023680

Question

J'essaie de créer une minuterie de comptage basée sur une heure modifiée d'un objet (formatée comme: 2014-02-19T18: 49: 15) et la comparant à l'heure actuelle en utilisant un moment.js.Mais quand il atteint 60 minutes, il redémarre à 0. Je pense que c'est parce que je comparais que je comparais juste les minutes ici ou au moins en utilisant des mathématiques pour changer les millisecondes à un format de numéro entier?Je ne suis pas tout à fait sûr, je suis excité quand j'ai eu les minutes à formater correctement.La différence en minutes est tout ce que je veux revenir.Donc, par exemple après une heure et demie, je veux une valeur renvoyée de '90'.

function() {
    return function(entry) {
        var elpTime = Math.floor(((Date.parse(moment()) - Date.parse(entry.arrival_time)) / (1000*60)) % 60);

        return elpTime;
    }
};

Voici un exemple de l'objet.

{
patient_id: 198,
arrival_time: "2014-02-19T18:49:15",
last_modified: "2014-02-19T18:49:15"
}

Je sais que je manque quelque chose de probablement évident.Mais toute aide est appréciée.Merci!

(doit être noté que j'utilise cela comme distincte d'une fonction de filtre en angular.js. Mais je l'ai dépouillé depuis que je ne pensais pas que c'était Nessacaire)

Était-ce utile?

La solution

Depuis que vous utilisez Moment.js Vous pouvez utiliser l'intégré Diff fonction Pour renvoyer la période de temps entre deux moments.

function() {
    return function(entry) {
        var elpTime = moment(entry.arrival_time).diff(moment(),'minutes');

        return elpTime;
    }
};

de la documentation:

Les mesures supportées sont des années, des mois, des semaines, des jours, des heures, des minutes et des secondes.

Par défaut, MOMENT # DIFF retournera le numéro arrondi.Si vous souhaitez que le numéro de point flottant, passez true comme troisième argument.Avant 2.0.0, moment # Diff a renvoyé le numéro arrondi, pas un numéro arrondi.

Exemple de la documentation:

var a = moment([2008, 6]);
var b = moment([2007, 0]);
a.diff(b, 'years');       // 1
a.diff(b, 'years', true); // 1.5

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top