moment.js에서 두 날짜와 시간의 차이를 계산합니다. (kintone편)

두 날짜와 시간의 차이를 계산합니다.



최근 킨톤의 커스터마이즈만



최근, kintone의 커스터마이즈를 js로 골고루 쓰는 일 밖에 없는 느낌이 듭니다만, 일시 차분을 취해, 소정의 시간을 넘고 있으면 입력란의 배경을 붉게 해, 여러가지 있고, 그때마다 생각하고 있었으므로 비망록으로서 메모.

전제 조건



kintone으로 앱을 사용자 정의 할 때 moment.js를로드하는 것을 잊지 마십시오.

예를 들면



kintone으로 타임 카드 앱을 만들었다고 하네요 ...



시작, 종료,에 각각 유저 타각 받고, 양쪽에 값이 들어간 상태로 「저장」하면, 「계산」란에 양자의 ​​차분 시간이 들어가는, 뭐라고 하고 싶은 경우입니다.

소스 예



sample.js
    // レコード保存時休憩時間計算
    kintone.events.on(["app.record.edit.submit"], function(event){
        var record = event.record;

        // 休憩開始と終了が入っていれば計算する
        if(record['休憩開始']['value'] !== undefined && record['休憩終了']['value'] !== undefined){
            const timeFrom = moment(record['休憩開始']['value']);
            const timeTo = moment(record['休憩終了']['value']);
            let result = timeTo.diff(timeFrom);
            record['休憩時間計算']['value'] = moment.utc(result).format('HH:mm');
        }
        return event;
    });

저장 시 동작





sample.js
    // レコード保存時休憩時間計算
    kintone.events.on(["app.record.edit.submit"], function(event){
    });

라고 하는 것은, 편집으로부터, 보존 실행시의 경우, 라고 하는 kintone의 작법적 코드입니다만, edit이므로, 신규 작성시는 이 프로그램은 동작하지 않습니다. 신규 작성, 편집시, 불문하고, 동작시키고 싶은 경우는 이런 느낌.

sample.js
    // レコード保存時休憩時間計算
    kintone.events.on(["app.record.create.submit","app.record.edit.submit"], function(event){
    });

계산



sample.js
        // 休憩開始と終了が入っていれば計算する
        if(record['休憩開始']['value'] !== undefined && record['休憩終了']['value'] !== undefined){
            const timeFrom = moment(record['休憩開始']['value']);
            const timeTo = moment(record['休憩終了']['value']);
            let result = timeTo.diff(timeFrom);
            record['休憩時間計算']['value'] = moment.utc(result).format('HH:mm');
        }

「휴식 개시」와 「휴식 종료」에 값이 있는 것을 확인한 후, 각각 const 정의에 담아, diff를 취하고 있을 뿐이군요. 이 경우는, 휴식 시간의 계산이므로, 1일 걸어라든가는 사양으로서 있을 수 없기 때문에, 포맷은 「HH:mm」로 하고 있습니다.

좋은 웹페이지 즐겨찾기