回答:
moment.jsの使用は次のように簡単です。
var years = moment().diff('1981-01-01', 'years');
var days = moment().diff('1981-01-01', 'days');
詳細については、moment.jsの公式ドキュメントをご覧ください。
分数の値が必要ない場合:
var years = moment().diff('1981-01-01', 'years',false);
alert( years);
分数の値が必要な場合:
var years = moment().diff('1981-01-01', 'years',true);
alert( years);
単位は[秒、分、時間、日、週、月、年]です。
使用する時間間隔と結果を丸めないオプションを受け入れる差分関数があるようです。だから、のようなもの
Math.floor(moment(new Date()).diff(moment("02/26/1978","MM/DD/YYYY"),'years',true)))
私はこれを試したことはありませんし、私はその瞬間に完全に精通していませんが、これはあなたが望むものを(月をリセットする必要なしに)得るはずです。
age = moment().diff(birthDate, 'years')
。
私は両方の日付(提供された日付と現在)で月を1月にリセットすることが機能することがわかりました:
> moment("02/26/1978", "MM/DD/YYYY").month(0).from(moment().month(0))
"34 years ago"
この方法は簡単で強力です。
値は日付で、「DD-MM-YYYY」は日付のマスクです。
moment().diff(moment(value, "DD-MM-YYYY"), 'years');
これを試して:
moment("02/26/1978", "MM/DD/YYYY").fromNow().split(" ")[0];
説明:
「23日前」のような文字列を受け取ります。それを配列に分割します:['23'、 'days'、 'ago']そして、最初のアイテム '23'を取ります。
この方法でうまくいきます。その人が今年誕生日を迎えたかどうかをチェックし、それ以外の場合は1年を差し引きます。
// date is the moment you're calculating the age of
var now = moment().unix();
var then = date.unix();
var diff = (now - then) / (60 * 60 * 24 * 365);
var years = Math.floor(diff);
編集:最初のバージョンは完全に機能しませんでした。更新されたものは
cal 1752
理由を確認するには入力してください
私はこの小さな方法を好みます。
function getAgeFromBirthday(birthday) {
if(birthday){
var totalMonths = moment().diff(birthday, 'months');
var years = parseInt(totalMonths / 12);
var months = totalMonths % 12;
if(months !== 0){
return parseFloat(years + '.' + months);
}
return years;
}
return null;
}