https://www.growthbook.io/ logo
b

busy-horse-73824

09/14/2022, 2:41 PM
btw it'd be good if there was a way to express "time since" in the targeting conditions We have an ISO8601 string indicating when the user account was created, and we can already use string comparisons to compare with a fixed date But it'd be extremely helpful if we could express e.g. "`mojo_user_created_at` is at least 7 days ago" - without having to provide both absolute + relative measures for every date attribute
e

eager-rainbow-87882

09/14/2022, 2:46 PM
I asked for something in this regard here. I also would love to have more powerful date comparison strategies not tied to simple string comparison.
👍 1
f

future-teacher-7046

09/14/2022, 2:57 PM
I think a syntax like this would make sense to add:
Copy code
{
  "created_at": {
    "$gt": {
      "$dateSubtract": {
        "startDate": "$$NOW",
        "unit": "day",
        "amount": 7
      }
    }
  }
}
We would have a nice UI on top of that, but that's what I'm thinking for the underlying JSON. This would require SDK changes to support, so have to be a little careful about versioning and how we roll this out.
👍 1
💯 1
e

eager-rainbow-87882

09/14/2022, 3:01 PM
Cool, as close to the MongoDB $dateAdd and $dateSubtract syntax that we can stay in GrowthBook, easier to understand and use properly.
b

busy-horse-73824

09/14/2022, 3:03 PM
https://growthbookusers.slack.com/archives/C01T6Q0TEG3/p1663167471142039?thread_ts=1663166502.869459&cid=C01T6Q0TEG3 total honesty, this feels a little overengineered to me - matching with the mongo style is a great idea, but do you really want to take it this far? If you need to add something mongo doesn't have, how would you do it? But from an end-user perspective, assuming the UI is easy to use, sounds great 👌
f

future-teacher-7046

09/14/2022, 4:03 PM
@busy-horse-73824 That's fair. Another direction we could go is to automatically create a matching relative attribute for any date string attributes:
Copy code
attributes: {
  created_at: "2022-09-01T01:23:45Z"
}
The default behavior would stay the same:
Copy code
{
  "created_at": {
    "$gt": "2022-01-01"
  }
}
But, you could opt in to referencing a relative time instead (now - date in seconds)
Copy code
{
  "created_at.relative": {
    "$gt": -604800
  }
}
b

busy-horse-73824

09/14/2022, 4:13 PM
Ah yeah that could work well too. Personally it doesn't matter to me how it works under the hood - it'd be excellent to have regardless of how it's done
d

dry-knife-80930

10/31/2022, 1:01 PM
Is this functionality available now? (either in JSON or via the UI)
f

future-teacher-7046

10/31/2022, 1:54 PM
It is not supported yet. The workaround is still to add two different attributes in the SDK, one with an absolute date and another with the relative time (now - date). I added a GitHub issue to add built-in support for this to make this use case easier - https://github.com/growthbook/growthbook/issues/685
2 Views