新規投稿
フォローする

日時フォームから時間を加算して、加算後の時間を表示させたい。

お世話になります。

初投稿になります。

初心者で不明点がございまして、ご質問いたします。
『開始時間』に日時を入力を行うと、1時間後の値を『終了時間』に表示を行う処理を書いております。

(function() {
'use strict';
(function () {
kintone.events.on(['app.record.create.show','app.record.edit.change.開始時間','app.record.create.change.開始時間','app.record.edit.change.終了時間','app.record.create.change.終了時間'],function(event){
var record = event.record;
moment.locale('ja');

var 終了時間 = moment(record['開始時間'].value).add(1,'h').format('HH:mm');
record['終了時間'].value = 終了時間;

return event;

});
})();

他の方々のソースを見て書かせてもらっておりますが、『終了時間』に日時が反映されません。
こちら、どの部分が悪いのかをご教授いただけますでしょうか。
ご検討をよろしくお願いいたします。

0

5件のコメント

Avatar
村濱一樹

https://developer.cybozu.io/hc/ja/articles/360038920252-kintoneカスタマイズの基本的なデバッグの流れを身につけよう

エラーなどがでてないかまずはデバッグしてみてください。

あとはぱっとみ、ですが,,,

1. 添付のコードですと3行目の(function(){が不要でそれはエラーになりそうです。
(コピペのミスかもしれませんが!

2. moment(record['開始時間'].value) としている箇所ですが、moment('01:25')のような時と分だけの形式ではmomentは時間を解釈できないのでそこもエラーになりそうですね。
moment('2021/1/1 '+record['開始時間'].value).add(1, 'h').format('HH:mm')
のようにすればいけるとはおもいます

0
Avatar
katsutoyo omaru

ご教授をありがとうございます。
こちら、デバッグ等にてエラーを確認いたしまして解決いたしましたが、アプリ側で不具合が起きてしまいました。
一度、最初にご提示いたしましたプログラムに直しても同じ結果になってしまい、大変お手数ですが、こちらの内容もご教授頂けますでしょうか?
エラーの内容と、『開始時間』、『終了時間』は下記の画像のものとなります。


0
Avatar
村濱一樹

終了時間にいれようとしている値がおかしいのかもしれませんね。

デバッグして一度Consoleに表示するとどうなるでしょう?

1
Avatar
katsutoyo omaru

ご教授をありがとうございます。
Consoleにて表示いたしましたところ、下記のエラーが判明いたしました。


edit.js:122 Uncaught TypeError: Cannot read properties of undefined (reading 'value')
at download.do?app=25&contentId=1143&jsType=DESKTOP&hash=93459267d546eb5ee1e4a965fc5b81e11ce5b0ac:7

確認いたしましたところ、.format('HH:mm')により、時間だけが終了時間に入れ込む形となっていたため、エラーが出ておりました。

修正を致しまして、イメージ通りに動くようになりました。
ありがとうございます。
他の方も参考になるとうれしいので、コードを載せておきます。

(function() {
'use strict';
kintone.events.on(['app.record.create.show','app.record.edit.change.開始時間','app.record.create.change.開始時間','app.record.edit.change.終了時間','app.record.create.change.終了時間'],function(event){
var record = event.record;
moment.locale('ja');

var endValue = moment(record['開始時間'].value)

// 開始時間に選択された日時に60分加算する
if (endValue){
endValue = moment(record['開始時間'].value).add(1,'h').format('YYYY-MM-DD HH:mm');
record['終了時間'].value = endValue;
}

return event;
});
})();

0
Avatar
katsutoyo omaru

村濱一樹様 ありがとうございました。
とても助かりました。
今後、また何かありましたら、ご連絡を致します。

0
サインインしてコメントを残してください。