Moment Timezoneを使って簡単時差管理

JavaScriptで日時を簡単に扱えるツールとしてMoment.jsが知られていますが、合わせてMoment Timezoneを使うとタイムゾーンの操作も簡単にできます。 どちらもCybozu CDNにてサポートされているので手軽に利用できます。

サンプル

入力した2つの場所を比較して、一方の現地日時から他方の現地日時を自動計算します。

デモ

 

コード

(function () {
  "use strict";
  kintone.events.on(["app.record.create.show", "app.record.edit.show"], function (event) {
      event.record.日時_支社2.disabled = true;
      return event;
    }
  );
  kintone.events.on(
    [
      "app.record.create.change.場所_支社1",
      "app.record.edit.change.場所_支社1",
      "app.record.create.change.日時_支社1",
      "app.record.edit.change.日時_支社1",
      "app.record.create.change.場所_支社2",
      "app.record.edit.change.場所_支社2",
    ],
    function (event) {
      vardatetime;
      if (
        !event.record.場所_支社1.value ||
        !event.record.日時_支社1.value ||
        !event.record.場所_支社2.value
      )
        return;
      // 日時_支社1の値を支社1のタイムゾーンでの日時であると認識した上で取得
      datetime = moment.tz(
        moment(event.record.日時_支社1.value).format("YYYY-MM-DDTHH:mm:ss"),
        event.record.場所_支社1.value
      );
      // 取得した日時を支社2のタイムゾーンで表示
      event.record.日時_支社2.value = datetime
        .tz(event.record.場所_支社2.value)
        .format("YYYY-MM-DDTHH:mm:ss");
      returnevent;
    }
  );
})();

※本サンプルでは、ルックアップ機能を用いて別アプリからタイムゾーン名(Asia/Tokyoなど)を取得しています。