From d4ade4c1670e9444d7df35ae643b7774b02c22b6 Mon Sep 17 00:00:00 2001 From: Moriyukina2 Date: Mon, 22 Jul 2024 13:42:22 +0900 Subject: [PATCH] =?UTF-8?q?fix=20502=20532=20:[=E5=80=A4=E6=8C=BF=E5=85=A5?= =?UTF-8?q?]=E7=8F=BE=E5=9C=A8=E6=97=A5=E6=99=82=E5=8F=96=E5=BE=97?= =?UTF-8?q?=E3=82=B3=E3=83=B3=E3=83=9D=E3=83=BC=E3=83=8D=E3=83=B3=E3=83=88?= =?UTF-8?q?=E3=81=A8=E7=B5=84=E3=81=BF=E5=90=88=E3=82=8F=E3=81=9B=E3=81=A6?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E3=81=A7=E3=81=8D=E3=82=8B=E3=82=88=E3=81=86?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E3=80=81[=E5=80=A4=E6=8C=BF=E5=85=A5]?= =?UTF-8?q?=E6=99=82=E5=88=BB=E3=81=AB=E3=82=A8=E3=83=A9=E3=83=BC=E3=83=A1?= =?UTF-8?q?=E3=83=83=E3=82=BB=E3=83=BC=E3=82=B8=E6=96=87=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/actions/insert-value.ts | 31 +++++++++++++++---- 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/plugin/kintone-addins/src/actions/insert-value.ts b/plugin/kintone-addins/src/actions/insert-value.ts index 0ab1d03..c93d8f2 100644 --- a/plugin/kintone-addins/src/actions/insert-value.ts +++ b/plugin/kintone-addins/src/actions/insert-value.ts @@ -113,11 +113,11 @@ export class InsertValueAction implements IAction{ //正規表現チェック let timeFormat =inputValue.match(/^([0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/); - //正規表現チェック確認 - if(timeFormat === null){ - event.record[fieldCode]['error'] = "「"+fieldCode+"」"+"フィールドに入れようとした値は、無効な時刻形式です。"; //レコードにエラーを表示 - throw new Error("「"+fieldCode+"」"+"フィールドに入れようとした値は、無効な時刻形式です。「値を挿入する」コンポーネントの処理を中断しました。"); - } + //正規表現チェック確認 + if(timeFormat === null){ + event.record[fieldCode]['error'] = "「"+fieldCode+"」"+"フィールドに入れようとした値は、無効な時刻形式です。"; //レコードにエラーを表示 + throw new Error("「"+fieldCode+"」"+"フィールドに入れようとした値は、無効な時刻形式です。「値を挿入する」コンポーネントの処理を中断しました。「1~2桁 : 2桁」の値を指定してください。"); + } return true; } @@ -142,7 +142,26 @@ export class InsertValueAction implements IAction{ return dateTime; } - //日付フィールドの場合、時刻なしの日付形式変換 + //日付フィールドの場合、時刻なしの日付に形式変換 + //UTCの時刻を挿入したい場合、JSTに変換する + let dateTimeMilliSecond = inputValue.match(/(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}).(\d{2,3})Z$/);//時刻入りのUTCの日付形式(ミリ秒) + let dateTimeNotIncludingMilliSeconds = inputValue.match(/(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/);//時刻入りのUTCの日付形式 + + if(dateTimeMilliSecond !== null || dateTimeNotIncludingMilliSeconds !== null){ + //JSTに変換 + let jstDate=date.toLocaleString("ja-JP", { timeZone: "Asia/Tokyo" }); + console.log(jstDate); + let dateArray=jstDate.match(/(\d{4})\/(\d{1,2})\/(\d{1,2})/);//4桁の数字-1~2桁の数字-1~2桁の数字 + if(dateArray !== null){ + let yearIndex = 1; + let monthIndex = 2; + let dayIndex = 3; + let dateFormatted=`${dateArray[yearIndex]}-${dateArray[monthIndex]}-${dateArray[dayIndex]}` + return dateFormatted; + } + } + + //UTC時刻でない値を挿入したい場合、年、月、日を抽出し、月-年-日の形式変換 let dateArray=inputValue.match(/(\d{4})-(\d{1,2})-(\d{1,2})$/);//4桁の数字-1~2桁の数字-1~2桁の数字 if(dateArray !== null){ let yearIndex = 1;