The month()
function returns an integer (number) between 0
and 11
that corresponds to the month of its date argument.
month(date)
date.month()
Code language: JavaScript (javascript)
month()
(and its sibling functions minute, hour, day, date, week, and year) is useful for manipulating dates within Notion formulas.
Example Formulas
month(now()) /* Output: 6 (when now() = June 24, 2022)
/* Assume a property called Date with a current date of Jan 1, 2022
prop("Date").month() /* Output: 1 */
Code language: JavaScript (javascript)
month()
can be used with other functions such as dateSubtract to change the value of a date, like so:
/* Assume the value of now() is June 24, 2022 */
dateSubtract(now(), month(now()), "months")
/* Output: December 24, 2022 */
Code language: JavaScript (javascript)
You can take this concept even further to “hard-code” any date into a Notion formula. See the section on Hard-Coding Dates into Formulas within the now article for more on how to do this.
Example Database
The example database below determines each person’s next birthday based on their Birth Date, as well as the current date.
View and Duplicate Database
“Next Birthday” Property Formula
dateAdd(
prop("Birth Date"),
year(
now()
) -
year(
prop("Birth Date")
) +
if(
month(
prop("Birth Date")
) == month(
now()
) and date(
prop("Birth Date")
) >= date(
now()
) or month(
prop("Birth Date")
) > month(
now()
),
0,
1
),
"years"
)
Code language: JavaScript (javascript)
Here’s the logic behind this formula:
- Start with the birth year.
- Add a number of years to it using dateAdd, determined by the year output of now minus the birth year itself (E.g. 2022 – 1991 = 31).
- Determine if the person’s birthday has already happened this year. If not, add one more year (since we’re determining their next birthday).
To check whether or not the person’s birthday has already happened, we use an if statement and multiple comparisons using comparison operators. If one of the following is true:
- The current month and the birth month are equal AND the current day of the month (determined with date) is equal to or later than the birth date’s day of the month
- OR the birth month is later than the current month
…then this indicates that the person’s birthday has NOT yet happened this year. Therefore, we add 0 to the count.
Otherwise, we add 1 to the count.
Good to know: The or operator has a lower operator precedence than the and operator, meaning that any “and” comparisons will be executed before the first “or” comparison.