MENU

【Bubble開発】Date型で <= を使いたいときに有効な対処方法

こんにちは!
EPICs株式会社です。

Bubbleの「:filtered」オペレーションで条件を指定する際、date型のフィールドに対して「<=(以下)」の演算子が使用できず、「<」や「>」しか表示されないケースがあります。

この制限により、本来実装したいロジックが構築できず、意図しないフィルタ結果になってしまうこともあります。

実際に弊社の開発でも上記の問題にあたり、開発が行き詰った場面がありました。
この記事では、このBubbleの仕様的な制限に対して、有効な対処方法を紹介します。

目次

実装手順

  1. 比較対象のdate型を、text形式(yyyyMMdd)に変換
  2. text → number に変換し、数値同士で比較可能にする
  3. :filteredの条件で <= を選べるようにする
  4. 表示には元のdate型を使用して、ユーザーには自然な形で見せる

実装方法

1. datetextnumber に変換

Bubbleではフィルター条件内で指定できる演算子が、対象のデータ型によって異なります。

たとえば、number型には「<=」が表示される一方、date型では「<」や「>」しか表示されないことがあります。

この制限を回避するためには、以下のように型変換を行いましょう。

  • Step1:dateを text に変換(formatted as yyyyMMdd)
  • Step2:textを number に変換(converted to number)

このように数値型に変換すれば、<=を含めた全ての比較演算子が使用可能になります。

2. 変換処理の具体例

たとえば、以下のように RepeatingGroup のデータソースで、条件付きで日付リストをフィルターする場面を考えます。

データソース設定例

SplitDateRanges B’s Date List:filtered

 List filter のConstraint例

This date + days: 6 

→ :rounded down to day 

→ :formatted as yyyyMMdd 

→ :converted to number 

<= 

SplitDateRanges A’s Date List:last item 

→ :formatted as yyyyMMdd 

→ :converted to number

  • 左:Repeating Group のデータソース
  • 右:List filter の Constraint 内容

このように日付を数値に変換することで、「<=」が使えるようになります。

3. filteredの中で 「<= を使用可能に

数値化された2つのdate値(例:20250415)がフィルタの対象になることで、「<=」のような本来表示されない演算子が利用可能になります。

この方法は、以下のような日付範囲でのフィルター処理に非常に有効です。

  • 「○月○日までのデータ」
  • 「過去7日以内の記録」
  • 「ある日付以前のイベント」

4. 表示には元のdateを使えばOK

データとしては日付を数値に変換して比較していますが、表示には元のdate型をそのまま使えば問題ありません。

Bubbleの RepeatingGroup などで表示する際は、元のデータを使うことで、違和感のない表示が可能です。

補足:他にも同様の制限がある場面

Bubbleでは以下のような場面でも、UI上の制限で想定どおりの演算子が使えないことがあります。

  • :filtered内の比較演算子が限定される(特にdate型)
  • リストの中での「includes(含む)」ができないケース
  • advancedフィルターが必要になる複雑なロジック

このような時にも、「一時的な型変換」や「formattingの工夫」で回避できることがあります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次