年齢を自動計算で求めたい

サンプルコードです。

基準の仕様がよくわかりませんでしたので、編集画面表示時に当日日付を入れました。

あと、Moment.js を指定してください。

 

(function() {
"use strict";

//■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
kintone.events.on(['app.record.edit.change.生年月日',
'app.record.create.change.生年月日',
'app.record.index.edit.change.生年月日',
'app.record.edit.change.基準日',
'app.record.create.change.基準日',
'app.record.index.edit.change.基準日',
'app.record.create.show',
'app.record.edit.show',
'app.record.index.edit.show'
], function(event) {
var record = event.record;

moment.locale('ja');
if (['app.record.create.show', 'app.record.edit.show', 'app.record.index.edit.show'].indexOf(event.type) >= 0) {
// フィールド制御
record['年齢']['disabled'] = true;
record['基準日'].value = moment().format('YYYY-MM-DD');
}

record['年齢'].value = ageCal(record['生年月日'].value, record['基準日'].value);
return event;
});

// 年齢計算
function ageCal(wkDate, wkReferenceDate) {
if (wkDate && wkReferenceDate) {
var mDate = moment(wkDate);
var mReferenceDate = moment(wkReferenceDate);
if (!mReferenceDate.isBefore(moment(mDate), 'day')) {
var years = mReferenceDate.diff(moment(mDate), 'years');
var months = mReferenceDate.diff(moment(mDate), 'months') % 12;
return years + "年 " + months + "ヶ月";
}
}
return '';
}
})();
1 Like