Moment: wie kann man das alter einer person ermitteln

Erstellt am 12. Feb. 2013  ·  8Kommentare  ·  Quelle: moment/moment

Hallo, das ist eher eine Frage als ein Problem, aber hier ist es.
Ich möchte den Moment nutzen, um zu überprüfen, ob eine Person älter als 18 Jahre ist. Wie geht das am besten? Denn wenn ich die .fromNow()-Funktion verwende, werde ich 18 Jahre alt, wenn die Person mehr als 17einhalb hat.

Hilfreichster Kommentar

Sie können dafür etwas wie birthday.diff(moment(), 'years') , wobei birthday ein Moment des Geburtstags der Person ist.

Alle 8 Kommentare

Sie können dafür etwas wie birthday.diff(moment(), 'years') , wobei birthday ein Moment des Geburtstags der Person ist.

Okay, es funktioniert. Vielen Dank.

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

Math.abs(birthday.diff(moment(), 'years')) mit Math.abs wandelst du dieses Ergebnis in eine positive Zahl um

Sie können dafür etwas wie birthday.diff(moment(), 'years') , wobei birthday ein Moment des Geburtstags der Person ist.

das funktioniert, aber es gibt eine Warnung auf der Konsole, eine Idee warum?

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 Das wäre nicht notwendig, wenn Sie nur die relativen Berechnungen wie @eballeste vertauschten:

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

Es funktioniert immer noch nicht richtig, wenn die Person vor kurzem (vor weniger als einem Monat) Geburtstag hatte.

Es funktioniert immer noch nicht richtig, wenn die Person vor kurzem (vor weniger als einem Monat) Geburtstag hatte.

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

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen