Moment: comment obtenir l'âge d'une personne

Créé le 12 févr. 2013  ·  8Commentaires  ·  Source: moment/moment

Salut, c'est plus une question qu'un problème, mais voilà.
Je veux utiliser le moment pour vérifier si une personne a plus de 18 ans. Quelle est la meilleure façon de procéder? Puisque si j'utilise la fonction .fromNow(), j'aurai 18 ans si la personne a plus de 17 ans et demi.

Commentaire le plus utile

Vous pouvez utiliser quelque chose comme birthday.diff(moment(), 'years') pour cela, où birthday est un moment de l'anniversaire de la personne.

Tous les 8 commentaires

Vous pouvez utiliser quelque chose comme birthday.diff(moment(), 'years') pour cela, où birthday est un moment de l'anniversaire de la personne.

Ok ça marche. Merci beaucoup.

const age = moment().diff(birthday, 'years');
const isLegal = (age >= 18);

Math.abs(birthday.diff(moment(), 'years')) avec Math.abs vous convertissez ce résultat en un nombre positif

Vous pouvez utiliser quelque chose comme birthday.diff(moment(), 'years') pour cela, où birthday est un moment de l'anniversaire de la personne.

cela fonctionne mais cela donne un avertissement sur la console, une idée pourquoi?

Deprecation warning: value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.
Arguments: 
[0] _isAMomentObject: true, _isUTC: false, _useUTC: false, _l: undefined, _i: Fri Sep 27 2019 00:00:00 GMT+0100 (Western European Summer Time), _f: undefined, _strict: undefined, _locale: [object Object]
Error
    at Function.eval [as createFromInputFallback] (webpack-internal:///./node_modules/moment/moment.js:319:98)
    at configFromString (webpack-internal:///./node_modules/moment/moment.js:2384:15)
    at configFromInput (webpack-internal:///./node_modules/moment/moment.js:2610:13)
    at prepareConfig (webpack-internal:///./node_modules/moment/moment.js:2593:13)
    at createFromConfig (webpack-internal:///./node_modules/moment/moment.js:2560:44)
    at createLocalOrUTC (webpack-internal:///./node_modules/moment/moment.js:2647:16)
    at createLocal (webpack-internal:///./node_modules/moment/moment.js:2651:16)
    at hooks (webpack-internal:///./node_modules/moment/moment.js:11:29)
    at VueComponent.Singup (webpack-internal:///./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/views/Singup.vue?vue&type=script&lang=js&:95:63)
    at invokeWithErrorHandling (webpack-internal:///./node_modules/vue/dist/vue.runtime.esm.js:1853:26)

@josebedoya Cela ne serait pas nécessaire si vous échangiez simplement les calculs relatifs comme

moment().diff(birthdate, 'years')

Cela ne fonctionne toujours pas correctement si la personne a récemment (il y a moins d'un mois) fêté son anniversaire.

Cela ne fonctionne toujours pas correctement si la personne a récemment (il y a moins d'un mois) fêté son anniversaire.

moment('2020-05-07').diff(moment('2002-05-06'), 'years') renvoie 18

Cette page vous a été utile?
0 / 5 - 0 notes