kviewerで入力日の翌日9時以降に入力した内容を公開したい

kintoneで、「入力日」を「日付」のパーツで作成しています。

これをkviewerで入力日の1日後の午前9時(現在時刻)に公開したいと考えています。

kviewerからクエリーで実現できないかと考え、まず、1日後に公開するクエリーを作るのは次のとおりでできましたが、これでは1日後午前0時に公開するもののため、どうしたらいいか困っています。

クエリーで実現できればいいのですが、javascriptを使うことやkintoneの設定などほかの方法で実現できるのであれば、こだわりはありません。

もし解決方法をご存じの方がいらっしゃいましたらご教示いただけないでしょうか。

入力日を含めたデータ入力はkintoneで行い、閲覧をkviewerで行う予定です。

=====================
入力日 <= FROM_TODAY(-1, DAYS) order by 入力日 desc

kviewerについて調べてみると、参考になりそうな機能を見つけたので紹介させていただきます。

プレミアムコース以上の機能なのですが、作成したフォームの公開期間を(開始日/開始時間/終了日/終了時間)に設定できるようです。

既にご存知でしたら恐縮ですが、ぜひ参考にしてみてください。

「いいね!」 1

ご連絡ありがとうございます。

ご回答いただきましたが、今日現在ですと、昨日までの投稿を見ることができるようにしたいと考えています。

ご提案いただいた内容ですと、明日になると前日までの内容を見ることができますが、設定した日まで、それ以前の投稿を含めて見ることができないと思います。

この実現したい内容について詳しく書いていませんでした。失礼しました。

なお、プレミアムコースでの利用になります。

実現したい内容を記述いただきありがとうございます。

kviewerを使用しておらずお答えすることが難しいので、こちらのフォームからお問い合わせをすると良いかと思います。お力になれず申し訳ありません。
https://kintoneapp.zendesk.com/hc/ja/categories/360002616712-kViewer

トヨクモの方でご存じの方がいらっしゃいましたらご教示お願いします。

「いいね!」 2

kintoneレコードを登録した翌日の朝9:00に、kviewerでそのレコードを公開したいという感じですか?
次のようにすると実現できるのではないかと思います。

kintone 側で計算フィールド(表示形式:日時)を追加し、計算式として「入力日+(60 * 60 * 24)」のように設定します。
kviewer側で、計算フィールドによる条件指定(例え、計算フィールド <= Today)をします。

また、FROM_TODAY(-1, DAYS)は前日の0:00で、
朝9時にするには、日付を日時に変換してから、9時間を足す必要があるのではと思います。

「いいね!」 1

ご連絡ありがとうございます。

実は、試して行き詰った方法でした。
ご回答いただいた内容に番号を振りました。
行き詰ったところは次のとおりです。

(1)kintoneの計算パーツを使い、問題なくできます。

(2)kviewerのクエリーで、(1)の結果とTODAY()で条件指定するとエラーになります。
クエリー:入力日時 <= TODAY()
エラー表示:関数TODAYは使用できません。
(※)計算パーツではエラーが表示されますが、日付パーツではエラーが表示されませんでした。

(3)「日付を日時に変換してから、9時間を足す」については、考えてみたのですが、方法が分かりませんでした。これは、クエリーで実現可能でしょうか、javascriptで実現可能でしょうか。
可能でしたら記載方法を教えていただけるととてもありがたいです。

==========
(1)kintone 側で計算フィールド(表示形式:日時)を追加し、計算式として「入力日+(60 * 60 * 24)」のように設定します。
(2)kviewer側で、計算フィールドによる条件指定(例え、計算フィールド <= Today)をします。
(3)また、FROM_TODAY(-1, DAYS)は前日の0:00で、朝9時にするには、日付を日時に変換してから、9時間を足す必要があるのではと思います。

(2)kviewerのクエリーで、(1)の結果とTODAY()で条件指定するとエラーになります。

試してみたところ、確かに計算フィールドは日時として扱われないようです。
なので、FROM_TODAY()やNOW()などの関数を使うと怒られます。

そうしたら、JavaScriptで、次のような感じでカスタマイズするしかないかなぁと思います。
(この方法しか思いつかず、すみません><)

  1. kintone アプリ側で日時フィールド(日付ではない)を配置する
  2. JSで、「入力日」を時間に変換してから、xx時間を足す(登録してからXX時間後)。
    その結果を1.の日時フィールドにセットする。
  3. JSファイルをkintoneアプリ側にアップする
  4. Kviewer側で、クエリの指定方法を「直接指定する」にして、日時フィールド = NOW();

このように実装する場合、レコード登録してから指定時間数(XX)が経つと、レコードが公開される動きになります。

JSで日付や時間を扱うには、 Luxonなどライブラリを使うと、楽になります。
次の記事は参考になると思います。
Luxon を使って kintone の日付や日時フィールドのフォーマットをカスタマイズする

kintone カスタマイズについては、kintone APIチュートリアルをご参考ください。

ご回答ありがとうございます。
現在の環境ではjavascriptの利用が管理者に制限されているので、交渉後試してみます。
大変お世話になりました。

「いいね!」 1

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。