Compare birth date if it is x years old in Expression editor in Condition | Adobe Higher Education
Skip to main content
Level 2
September 12, 2025
Resuelto

Compare birth date if it is x years old in Expression editor in Condition

  • September 12, 2025
  • 3 respuestas
  • 648 visualizaciones

Hi AJO experts, 
I would like to see birthdate is equal to 59 years old and 60 and 65. How can I do it in Expression editor in AJO condition.

{%= ageInMonths(#{ExperiencePlatform.ProfileFieldGroup.profile.person.birthDate}) >= 714 %}

It is not working.


Please suggest.

Kind regards,

Vidhi

Mejor respuesta de Mohan_Dugganab

Also @mohan_dugganab : Would you know if I need to check for 59.5 years age then the same logic will work?

 

Kind regards,

Vidhi


@vidhikh1 By slightly tweaking the above logic as follows, yes

( ( ((toInteger(substr(toString(now()),0,4))) * 12 + (toInteger(substr(toString(now()),5,7)))) - ((toInteger(substr(toString(#{ExperiencePlatform.ProfileFieldGroup.profile.person.birthDate}),0,4))) * 12 + (toInteger(substr(toString(#{ExperiencePlatform.ProfileFieldGroup.profile.person.birthDate}),5,7)))) ) / 12 == 59 ) or ( ( ((toInteger(substr(toString(now()),0,4))) * 12 + (toInteger(substr(toString(now()),5,7)))) - ((toInteger(substr(toString(#{ExperiencePlatform.ProfileFieldGroup.profile.person.birthDate}),0,4))) * 12 + (toInteger(substr(toString(#{ExperiencePlatform.ProfileFieldGroup.profile.person.birthDate}),5,7)))) ) / 12 == 59.5 )

3 respuestas

Mohan_Dugganab
Adobe Employee
Adobe Employee
September 12, 2025

Kindly use the following expression 

Age -> {%= toInt((ageInMonths(toDateTimeOnly(profile.person.birthDate))/ 12)) %} {%# if toInt((ageInMonths(toDateTimeOnly(profile.person.birthDate))/ 12)) = 59 or toInt((ageInMonths(toDateTimeOnly(profile.person.birthDate))/ 12)) = 60 or toInt((ageInMonths(toDateTimeOnly(profile.person.birthDate))/ 12)) = 65 %} Display Relevant Content {%else%} Fallback {%/if%}
Mayank_Gandhi
Adobe Employee
Adobe Employee
September 12, 2025

@vidhikh1 try this

(
  yearsBetween(now(), profile.person.birthDate) == 59
  ||
  yearsBetween(now(), profile.person.birthDate) == 60
  ||
  yearsBetween(now(), profile.person.birthDate) == 65
)
Level 2
September 12, 2025

Hi these solutions are not working in expression editor: I get error that it is invalid.

 

 

Mohan_Dugganab
Adobe Employee
Adobe Employee
September 12, 2025

Previous example I shared was with respect to personalization editor. You can adapt your condition by looking at the example mentioned here https://experienceleaguecommunities.adobe.com/t5/journey-optimizer-questions/getting-age-field/m-p/675198#M2041 

 

( ( (toInteger(substr(toString(now()),0,4))) - (toInteger(substr(toString(#{ExperiencePlatform.ProfileFieldGroup.profile.person.birthDate}),0,4))) ) == 59 ) or ( ( (toInteger(substr(toString(now()),0,4))) - (toInteger(substr(toString(#{ExperiencePlatform.ProfileFieldGroup.profile.person.birthDate}),0,4))) ) == 60 ) or ( ( (toInteger(substr(toString(now()),0,4))) - (toInteger(substr(toString(#{ExperiencePlatform.ProfileFieldGroup.profile.person.birthDate}),0,4))) ) == 65 )
Mayank_Gandhi
Adobe Employee
Adobe Employee
September 12, 2025

@vidhikh1 In the advanced expression editor you can compare age in years directly with the age() helper, then combine the three values with OR logic:

(age(#{ExperiencePlatform.ProfileFieldGroup.profile.person.birthDate}) = 59
 or age(#{ExperiencePlatform.ProfileFieldGroup.profile.person.birthDate}) = 60
 or age(#{ExperiencePlatform.ProfileFieldGroup.profile.person.birthDate}) = 65)

• age(date) returns the number of whole years between now and the date you pass (it already handles leap years for you).
• The = operator checks for equality, and the or operator lets any of the three comparisons pass.If you prefer a more compact form you can use the in() collection operator:

in([59,60,65], age(#{ExperiencePlatform.ProfileFieldGroup.profile.person.birthDate}))
Mayank_Gandhi
Adobe Employee
Adobe Employee
September 13, 2025

@vidhikh1 did you try the suggestions?