Forum Discussion
JSON Formula Help
I am new to using JSON but I'm looking to do the following any help would be appreciated.
I have a Sharepoint list that has a Date Column labeled Expiration Date and I'd like to show green if a date is entered and is it not within 30 days of expiring. If the expiration date is 30 days or less of expiring I’d like it to turn red.
3 Replies
- Matti PaukkonenIron Contributor
Hi spinman,
There was already a good example of docs.microsoft.com: https://docs.microsoft.com/en-us/sharepoint/dev/declarative-customization/column-formatting#apply-formatting-based-on-date-ranges under "Formatting items based on arbitrary dates (advanced)" title. I just tweaked a little bit to figure out, if field is empty.
Here is the example:
{ "$schema": "<a href="<a href="https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json" target="_blank">https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json</a>" target="_blank"><a href="https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json</a" target="_blank">https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json</a</a>>", "elmType": "div", "txtContent": "@currentField", "style": { "background-color": { "operator": "&&", "operands": [ "=length([$DueDate]) > 0",{ "operator": "?", "operands": [ { "operator": "<=", "operands": [ "[$DueDate]", { "operator": "+", "operands": [ "@now", 86400000 ] } ] }, "#ff0000", "green" ] } ] } } }You just need to change [$DueDate] to correspond your date time field, and if you copy example code directly, fix the schema as following (code snippet editor just adds unnecessary html tags):
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json"Results are like this
Was this something you were looking for?
- spinmanCopper Contributor
Thanks for your help with this. This works for this one.
What about this.. I have a column called Effective Date and a column called Exp Date. How would I go about coloring the Effective date green if its within 30 days of the Exp Date and red if its after 30 days of the exp date?
- Matti PaukkonenIron Contributor
Hi spinman,
Here is an example.
{ "$schema": "<a href="<a href="https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json" target="_blank">https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json</a>" target="_blank"><a href="https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json</a" target="_blank">https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json</a</a>>", "elmType": "div", "txtContent": "@currentField", "style": { "background-color": { "operator": "?", "operands": [ "=length([$EffectiveDate]) > 0", {"operator":"?", "operands":[ {"operator":"<", "operands": [ "[$EffectiveDate]","[$ExpDate]" ]},"", {"operator":"?", "operands":[ {"operator":"<","operands":[ "[$EffectiveDate]", { "operator": "+", "operands": [ "[$ExpDate]", 2592000000 ] }]},"green","red" ]},"" ]} ,"" ] } } }Notice that actual value for comparing one month is: 2592000000, it was wrong on my first example.