カレンダーplusの本稼働を前にテスト運用している最中です。
既出でしたら大変申し訳ありません
カレンダーplusの日時の初期設定を
開始日時:当日の日付の8:00
終了日時:当日の日付の17:30
と設定したいのですが、JavaScriptでの設定は可能でしょうか。
初心者につきコードの書き方すらわからず申し訳ありません。
まだ何も怖くて試せていません。
カレンダーplusの本稼働を前にテスト運用している最中です。
既出でしたら大変申し訳ありません
カレンダーplusの日時の初期設定を
開始日時:当日の日付の8:00
終了日時:当日の日付の17:30
と設定したいのですが、JavaScriptでの設定は可能でしょうか。
初心者につきコードの書き方すらわからず申し訳ありません。
まだ何も怖くて試せていません。
おはずかしながらChatGPTにてコードを書いてもらいました
自分の中で確認している限り、合っていそうなのですがまったく反映されませんでした。
################以下コード##################
(function() {
“use strict”;
// カレンダーのフィールドコードを指定してフィールドオブジェクトを取得
var startDateField = kintone.app.record.getFieldElement(‘開始日時’);
var endDateField = kintone.app.record.getFieldElement(‘終了日時’);
// 開始日時の初期値を設定(当日の8:00)
var today = new Date();
today.setHours(8, 0, 0, 0); // 時間を8:00に設定
// 終了日時の初期値を設定(当日の17:30)
var todayEnd = new Date();
todayEnd.setHours(17, 30, 0, 0); // 時間を17:30に設定
// 開始日時と終了日時に初期値を設定
startDateField.value = today;
endDateField.value = todayEnd;
// 開始日時と終了日時のフィールドに初期値を表示
kintone.app.record.setFieldShown(‘開始日時’, true);
kintone.app.record.setFieldShown(‘終了日時’, true);
// 保存前にフィールドの値を取得
kintone.events.on(‘app.record.create.submit’, function(event) {
var record = event.record;
var startDateTime = record[‘開始日時’].value;
var endDateTime = record[‘終了日時’].value;
// ここで何か特別な処理を行う場合は追加してください
// フィールドに設定した値を保持し、保存処理を続行
return event;
});
})();
####################################################
@kuri さん
こんにちは、当方カレンダーplusを使っていないので製品がどういう仕様なのか把握してませんが、何点かお伝えできそうなので、回答させて頂きました。
まず、予定の開始日時と終了日時ですが、kintoneのフィールドの設定で初期値を入れれるはずなのですが、そちらでの対応は不可なのでしょうか?
また、少しカレンダープラスを調べさせて頂いたら専用のイベントハンドラーを用意されているようで、もしJavaScriptでカスタマイズされるのであれば下記のリンクを参考にされるといいかもしれません。
ご回答ありがとうございます。
KINTONEのフォーム上の日時で、時間だけを入力して
そのあとに保存を押すと、時間だけではなく月日まで入ってしまいます。
その為KINTONE上だけで時間だけ初期値を持たせるのは難しいのかなと認識してました。
JSをKINTONEに対してかけるのではなく、プラグインの動作に対して
反映させることも出来るのですね。勉強になります。
使い方がいまいちわからないので、勉強します。重ねて回答ありがとうございます。
なるほど、そういうことでございますね。
日時フィールドでは時間だけを初期値に設定できないから…日付と時刻フィールドは別かと考えておりました。
恐らく新規レコードを作成時を想定されていると思うので、
先程カレンダーplusのハンドラーでとお伝えしましたが、kintoneのイベントハンドラー(app.record.create.show)のほうがいいかなと感じました。
それ踏まえて一応下記にサンプルコード貼っておきますね。
(() => {
'use strict'
kintone.events.on(['app.record.create.show',], (event) => {
const record = event.record;
//本日を取得 続いて年、月、日をそれぞれ取得
const day = new Date();
let yyyy = day.getFullYear();
let mm = day.getMonth()+1;
let dd = day.getDate();
//10月以前だと一桁のため先頭0付
if (mm < 10){
mm = `0${mm}`
}
//10日以前だと一桁のため先頭0付
if (dd < 10){
dd = `0${dd}`
}
//kintoneの日付のフォーマットに合わす。
const today_string = `${yyyy}-${mm}-${dd}`
//それぞれのフィールドに時刻を加えて値を代入する。
record.開始日時.value = `${today_string}T08:00+09:00`;
record.終了日時.value = `${today_string}T17:30+09:00`;
return event;
});
})();
解説まで添えていただき大変勉強になりました!
ありがとうございます。
今日というデータを入れ込むための調整作業が必要になるのですね。
勉強になりました。
せっかくカレンダーplusのハンドラーも教えていただいたので
今度は新規登録時のみならず、アプリ制御かかっている流れでの新規登録でも
同じことができるように挑戦してみたいと思います。
ご教授賜り感謝致します。
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。