kintoneにjsファイルを読み込ませることにより経過日数フィールドに現在日時から作成日を引いた値を代入させることに下記のコードで成功させました
しかし更新日時というフィールドが本来はレコードが更新された場合のみ現在時刻を取得しなければいけないものが、ページを更新するたびに現在時刻を取得するようになってしまいました。
更新日時に関する記述は下記のコードではconsole以外していないと思うのですが、なぜ更新日時がページを更新するたびに現在時刻を取得するようになってしまったのでしょうか。
レコードを更新したときのみ更新日時フィールドが現在時刻を取得できるようにしたいです
(() => { 'use strict' //1回だけリロードする /*if (window.name !== 'reload') { console.log('リロード'); location.reload(); window.name = 'reload'; } else { window.name = ''; }*/ //イベントリスナーの設定 kintone.events.on([ 'app.record.index.show', 'app.record.detail.show' ], async (event) => { var record = event.record; //現在日時の取得 const now = new Date(); const year = now.getFullYear(); const month = ('0' + (now.getMonth() + 1)).slice(-2); const date = ('0' + now.getDate()).slice(-2); const hour = ('0' + now.getHours()).slice(-2); const minute = ('0' + now.getMinutes()).slice(-2); const second = ('0' + now.getSeconds()).slice(-2); var nowTotal = `${year}-${month}-${date} ${hour}:${minute}:${second}`; console.log("現在時刻" + nowTotal); //index.showとdetail.showの使い分け if (event.type === 'app.record.detail.show') { //作成日時の取得 var createTime = new Date(record['作成日']['value']); console.log("作成日時" + createTime); //経過日数 const diff = now.getTime() - createTime.getTime(); const diffDays = Math.floor(diff / (1000 * 60 * 60 * 24)); const diffHours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); const diffMinutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60)); var diffTotal = `${diffDays}日${diffHours}時間${diffMinutes}分`; console.log("経過日数" + diffTotal); //更新日時 console.log("更新日時" + event.record.更新日時.value); //値が最新だったら更新しない if (record.経過日数.value === diffTotal) { return event; } //レコード更新のパラメータ設定 const body = { app: kintone.app.getId(), id: kintone.app.record.getId(), record: { 経過日数: { value: diffTotal, } } } //フィールドの値を更新する return kintone.api( kintone.api.url("/k/v1/record.json", true), "PUT", body, ) } }) })();

あなたの回答
tips
プレビュー