【フォームブリッジ】の年齢計算について

下記記事を基に、経過日数を計算する方法は分かったのですが、

経過年数を計算する場合はどのようにすればよろしいですか?

【フォームブリッジ】経過日数の計算について

 

下記に記入しているコードにある

86400000は日数を計算するためのもので、

年数であるとうるう年もあるので単純に365と割るわけにもいかないので、

サンプルコードをいただければ幸いです。

よろしくお願いいたします。

 

(function() {

“use strict”;

const start = ‘start’;
const period = ‘period’;

fb.events.fields[start].changed.push(function (state) {
const now = new Date();

state.record[period].value = Math.floor((now - state.record[start].value) / 86400000);
return state;
})

})();

お世話になっております。

トヨクモの友利と申します。

上記の

Math.floor((now - state.record[start].value) / 86400000)

の部分を

now.getFullYear() - state.record[start].value.getFullYear()

とすることで経過年数を取得できます。

ご教示いただきありがとうございます。

無事実装できました!

友利様

 

お世話になっております。

 

こちらのコードで実装していたのですが、

よく見ると正しく年齢が計算されておりませんでした。

 

具体的にはこのコメントを書く時点でまだ30歳の誕生日を迎えていない(29歳が正しい)

1989/12/1を入力したところ、

数値フィールドが30と表示されてしまいます。

年が同じ1989であればすべて30と計算されて、

1990であればすべて29歳と計算されました。

 

こちらはどのようにすれば正しく計算されるでしょうか?

大変お手数をおかけいたしますが、

ご教示のほどよろしくお願いいたします。

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。