web-dev-qa-db-fra.com

Minutes depuis minuit à Momentjs

En JS pur, this serait comment.

Comment puis-je connaître le nombre de minutes depuis minuit pour un objet moment donné (sans extraire vers Date)?

  • Doit prendre en compte les DST
  • Les minutes doivent être arrondies
  • Doit fonctionner avec l'heure locale (ne pas convertir en UTC)
29
bguiz
// Your moment
var mmt = moment();

// Your moment at midnight
var mmtMidnight = mmt.clone().startOf('day');

// Difference in minutes
var diffMinutes = mmt.diff(mmtMidnight, 'minutes');

Par défaut, moment # diff renverra un nombre arrondi vers le bas. Si vous voulez le nombre à virgule flottante, passez true comme troisième argument. Avant 2.0.0, le moment # diff renvoyait un nombre arrondi, pas un nombre arrondi.

Considérez ce pseudocode car je n'ai pas testé pour voir si la différence prend en compte l'heure d'été.

60
Tuan

Voici ce que j'ai en ce moment:

    if (!moment.isMoment(mmt)) {
        return 0;
    }
    var hh = mmt.get('hour');
    var mm = mmt.get('minute');
    return hh*60 + mm;

Je ne sais pas s'il prend en compte divers cas Edge; commentez le cas échéant, ou fournissez une autre réponse.

3
bguiz