SOLUTION: DAY and DATEONLY functions ignoring locale information
Users have been running into problems with the DAY function returning the wrong day and DATEONLY returning the wrong date. The reason is that these functions do not reference the user's locale information, and resolve against UTC time instead. That's fine if you live in the same timezone as Britain, but a tragedy if you live elsewhere on the globe.
This solution is based on converting the DAY component into text first and then manipulating it.
To simulate the DAY function, use the following:
= VALUE( LEFT( [Created Date]@row + "", 2 ) )
To simulate the DATEONLY function use something like:
= DATE( YEAR( [Created Date]@row), MONTH( [Created Date]@row ), VALUE( LEFT( [Created Date]@row + "", 2) ) )
This workaround will also work with other failing functions like WEEKDAY, WORKDAY, and so on