テーブル外の日付フィールドとテーブル内の時刻フィールドをテーブル内の日時フィールドに反映したい

【テーブル外の日付フィールドとテーブル内の時刻フィールドを使用してテーブル内の日時フィールドを更新したい】

初めまして。Kintoneのアプリを作成するようになり、JavaScriptを学び始めました。
こちらでも色々と検索させていただき、皆さまのお知恵をお借りしながらアプリを作っております。

例)テーブル外 日付フィールド(2023-12-27)(手入力)
テーブル内 時刻フィールド(14:00)(手入力)

テーブル内 日時フィールド(2023-12-2714:00)と表示したい

入力件数が多いため、日付の二重入力をさけたくこのような仕組みになればと思っております。当初、テーブルデータを分解し、別アプリに1レコードとして登録、同じように日付+時刻→日時フィールド更新をしており、この処理はうまくいったのですが、テーブルデータを分解、コピーした後に1件ずつレコードを開いて更新するしか日時フィールドにデータを入れる術が見つからず、次に考えたのが、この方法でした。
下のようなコードを書いたのですが、動きません。初心者中の初心者のため、とても簡単なことができていなとは思うのですが、ご教示いただけますと幸いです。

よろしくお願い申し上げます。

(function() {
  'use strict';
  function putNichiji(event) {
    // ロケールを設定
    moment.locale('ja');

    // 日付(日本時間)
    var hizuke = moment(event.record.日付.value).format('YYYY-MM-DD');

    // 日付+時刻(日本時間)
    
    if(event.record.value[0].value.時刻.value) {
      hizuke += ' ' + event.record.value[0].value.時刻.value;
    }

    // ISO形式に変換
    event.record.value[0].value.日時.value = moment(hizuke).toISOString();

    return event;
  }

  kintone.events.on(
    [
      'app.record.create.change.日付',
      'app.record.create.change.時刻',
      'app.record.edit.change.日付',
      'app.record.edit.change.時刻'
    ]  
    ,putNichiji);
})();

moment.jsが非推奨になっているのでdayjsあたりに移行しておいたほうがいいです。

下記cdn経由等でmomentjsと置き換えてください。

https://cdnjs.cloudflare.com/ajax/libs/dayjs/1.11.10/dayjs.min.js
https://cdnjs.cloudflare.com/ajax/libs/dayjs/1.11.10/locale/ja.min.js

また、テーブル内の行データ操作する時はテーブルのフィールドコードも指定してあげてください。サンプル作りましたのでこちらで試してみてください。
テーブルのフィールドコードはテーブルという名前で指定していますので適宜変更してください。

(function () {
    'use strict';
    function putNichiji(event) {
      // ロケールを設定
      dayjs.locale('ja');
      // 日付(日本時間)
      const hizuke = dayjs(event.record.日付.value ?? "1999-01-01").format('YYYY-MM-DD');
      // 時刻(日本時間)
      const jikoku = event.record.時刻.value ?? "00:00";
      // ISO形式に変換。テーブル というフィールドコードにしてます。
      event.record.テーブル.value[0].value.日時.value = dayjs(`${hizuke}${jikoku}`).toISOString();
      return event;
    }

    kintone.events.on(
      [
        'app.record.create.change.日付',
        'app.record.create.change.時刻',
        'app.record.edit.change.日付',
        'app.record.edit.change.時刻'
      ]
      , putNichiji);
  })();
「いいね!」 1

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