# 設定日２週間前の日付を自動入力

**URL:** <https://community.cybozu.dev/t/topic/3969>\
**Category:** kintone 開発相談\
**Created:** [2019 年 4 月 11 日午前 7:59 UTC](https://community.cybozu.dev/t/topic/3969 "2019-04-11T07:59:26Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account803](https://avatars.discourse-cdn.com/v4/letter/l/34f0e0/32.png) [@Legacy\_Account803](https://community.cybozu.dev/u/Legacy_Account803)\
**Post date:** [2019 年 4 月 11 日午前 7:59 UTC](https://community.cybozu.dev/t/topic/3969/1 "2019-04-11T07:59:26Z")

</div>

いつもお世話になっております。  
設定日の２週間前の日付を、別の日付フィールドに自動入力されるようにカスタマイズしたいです。  
書いてみましたが、うまく動作せず。  
恐らく event.record[‘リミット’][‘value’] = limit;  
の部分がおかしいのだと思います。  
お忙しいところ恐れ入りますが、ご教示の程お願いいたします。

(function() {  
“use strict”;  
var events = [‘app.record.edit.submit’,‘app.record.create.submit’,‘app.record.index.edit.submit’];  
kintone.events.on(events, function(event) {  
var record = event.record;

//予定の2週間前の日付を取得  
var limit = record[‘予定’][‘value’] - (24\*60\*60\*14);

event.record[‘リミット’][‘value’] = limit;  
return event;  
});  
})();

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1906](https://avatars.discourse-cdn.com/v4/letter/l/7ab992/32.png) [@Legacy\_Account1906](https://community.cybozu.dev/u/Legacy_Account1906)\
**Post date:** [2019 年 4 月 12 日午前 12:32 UTC](https://community.cybozu.dev/t/topic/3969/2 "2019-04-12T00:32:12Z")

</div>

natsuki さん

デバッグしてみると、どこがうまくいっていないのか分かると思います。  
[動かない？そんな時はデバッグをしてみよう！入門編](https://community.cybozu.dev/hc/ja/articles/207613916)

natsuki さんの記載してくださったコードを見てみました。

10行目で「リミット」フィールドに書き換えたい変数「limit」の中身が「limit = NaN」になっていて、ここがうまくいっていないみたいです。  
なので、変数「limit」を定義している8行目を修正する必要があります。

kintoneの日付の計算は「Moment.js」というライブラリを使うとカスタマイズしやすくなります。  
[Moment.js を利用して、日時フィールドのフォーマットをカスタマイズする](https://community.cybozu.dev/hc/ja/articles/204982474)  
[moment.js の使い方](https://qiita.com/ue5963/items/729c76fe5b821e5c504e)

以下のような感じでうまくいくと思います。

※[https://js.cybozu.com/momentjs/2.24.0/moment.min.js](https://js.cybozu.com/momentjs/2.24.0/moment.min.js) を追加するの忘れないようにしてください

```
(function() {
    "use strict";
    var events = ['app.record.edit.submit', 'app.record.create.submit', 'app.record.index.edit.submit'];
    kintone.events.on(events, function(event) {
        var record = event.record;    

        // 予定の日付を取得
        var date = record['予定'].value;     

        // Moment.jsを使って2週間前を計算、日付をフォーマット
        var limit =moment(date).subtract(14, 'day').format("YYYY-MM-DD");

        // リミットの日付をセットする
        record['リミット']['value'] = limit;
        return event;
    });
})();

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account803](https://avatars.discourse-cdn.com/v4/letter/l/34f0e0/32.png) [@Legacy\_Account803](https://community.cybozu.dev/u/Legacy_Account803)\
**Post date:** [2019 年 4 月 15 日午前 12:14 UTC](https://community.cybozu.dev/t/topic/3969/3 "2019-04-15T00:14:47Z")

</div>

たけちよ様

分かりやすくご丁寧な回答ありがとうございます。お礼が遅くなってしまいすみません。

教えていただいた通り、Moment.jsを使うことで動作しました。

たけちよ様のおかげです。大変助かりました。ありがとうございます。
