Hi Ian Marsden
Thank you for reaching out to Microsoft Q&A forum
As far as I know, this behavior occurs because SharePoint’s built-in conditional formulas for column visibility are evaluated only when the form loads or when referenced fields trigger a refresh. Complex calculations using Number() and milliseconds often do not re-render dynamically in the modern form interface.
From my perspective view, you can try these approach methods below to see if it can resolve your problem:
Initially, you can use the DATEDIF function instead of converting dates to milliseconds. This is simpler, natively supported in SharePoint formulas, and avoids potential issues with time zones or precision.
IF(DATEDIF([$Date1], [$Date2], "d") > 30, true, false)
Notes: Ensure Date2 is after Date1 (otherwise, DATEDIF may return errors—add safeguards like AND([$Date2] > [$Date1], DATEDIF([$Date1], [$Date2], "d") > 30) if needed). Test by entering dates and tabbing out; it should re-evaluate on field changes
In the other hand, you can try to use JSON column formatting approach:
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/row-formatting.schema.json",
"hideColumnHeader": false,
"additionalRowClass": "=if(@now > [$Date2], 'sp-css-backgroundColor-errorBackground', '')" // Example: Style row based on date; adapt for your needs
}
In case this behavior still persists after trying above methods, kindly let me know in the comment section.
Best regards
If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.