エヌ・ドット・ジェーピー

  • line

kintone有効活用。時刻を15分単位に丸める。JavaScript版

入力した時刻を自動計算で15分単位で丸めたいが、余計なフィールドを増やしたくない。

前回自動計算を使ったkintone有効活用。時刻を15分単位に丸める。をご紹介しました。
kintoneの標準機能を使っているため、バージョンアップでの仕様変更をあまり気にする必要がない、というメリットがあります。
しかし、自動計算を使用するためどうしても余分なフィールドが増えてしまう、というデメリットがあります。

今回はJavaScriptでのカスタマイズが必要になりますが、余計なフィールド追加をしない、スマートなフィールド構成になるカスタマイズをご紹介します。

時刻フィールドの中身を確認する。

時刻フィールドをを設置し、このフィールドが更新されたときに15分単位に丸める設定します。
まずは時刻フィールドの値の持ち方を確認してみましょう。
自動計算で扱う場合と同じようにUNIX時刻でのデータ形式であれば、自動計算で使った式がそのまま使えそうです。
レコード作成時のイベントでコンソールに時刻のデータを出力してみます。


console.log(event.record.時刻.value);

コンソールを確認すると「hh:mm」となっていることが確認できます。
残念ながら文字列でデータを保持しているようです。

「時」と「分」を分けて処理する。

文字列のままだと扱いにつくいので、「時」と「分」に分けます。

var time = event.record.時刻.value;
var hour = time.slice(0,2);
var minute = time.slice(-2);

sliceメソッドで「時」と「分」に分け、数値として扱えるようにします。
端数を切り捨てる場合は、分数を15で割って小数点以下を切り捨てます。

Math.floor(minute / 15) * 15

これで、15分単位で丸めることができます。
切り上げる場合は46分から59分の場合で処理を分岐してください。

event.record.時刻.value = hour + ":" + (Math.floor(minute / 15) * 15);

時刻フィールドの値を上書きして完成です。



ゴートップではkintoneを活用した業務の効率化のご相談を承っております。
現在の業務に課題を抱えている方は是非ゴートップにお問い合わせください。

詳しくは当社kintoneソリューションサービスのページをご覧ください。



さまざまな方や企業の多様なニーズにお応えする「エスコートン」サービスの提供を開始しました。
お悩みに合わせた3つのサービスメニューをご用意しました。

エスコートン

  • line

お問い合わせ

お気軽にお電話ください。

0120-98-0016