SOLVED
Home

Formatting Dates in SharePoint Online list

%3CLINGO-SUB%20id%3D%22lingo-sub-1068804%22%20slang%3D%22en-US%22%3EFormatting%20Dates%20in%20SharePoint%20Online%20list%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1068804%22%20slang%3D%22en-US%22%3E%3CP%3EI%20have%20a%20list%20with%20two%20dates%20one%20labeled%20%22Effective%20Date%22%20and%20one%20labeled%20%22Exp%20Date%22.%20Both%20columns%20are%20using%20the%20Date%20%26amp%3B%20Time%20column%20type%20but%20set%20to%20Date%20Only.%26nbsp%3B%20What%20I'm%20trying%20to%20figure%20out%20is%20how%20to%20make%20the%20%22Exp%20Date%22%20Green%20if%20a%20date%20is%20entered%20and%20it%20is%20%3CU%3Enot%3C%2FU%3E%20within%2030%20days%20of%20expiring.%26nbsp%3B%20If%20the%20%22Exp%20Date%22%20is%2030%20days%20or%20less%20of%20expiring%20make%20it%20Red.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-1068804%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3ELists%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3ESharePoint%20Online%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1068892%22%20slang%3D%22en-US%22%3ERe%3A%20Formatting%20Dates%20in%20SharePoint%20Online%20list%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1068892%22%20slang%3D%22en-US%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F332983%22%20target%3D%22_blank%22%3E%40spinman%3C%2FA%3E%26nbsp%3BThere's%20an%20answer%20from%20%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F5628%22%20target%3D%22_blank%22%3E%40Matti%20Paukkonen%3C%2FA%3E%26nbsp%3Bto%20your%20previously%20asked%20question%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2FSharePoint%2FJSON-Formula-Help%2Fm-p%2F977223%23M35868%22%20target%3D%22_blank%22%3Ehttps%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2FSharePoint%2FJSON-Formula-Help%2Fm-p%2F977223%23M35868%3C%2FA%3E%26nbsp%3B-%20did%20that%20not%20work%20for%20you%3F%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EThere's%20great%20documentation%20here%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fsharepoint%2Fdev%2Fdeclarative-customization%2Fcolumn-formatting%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fsharepoint%2Fdev%2Fdeclarative-customization%2Fcolumn-formatting%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1070153%22%20slang%3D%22en-US%22%3ERe%3A%20Formatting%20Dates%20in%20SharePoint%20Online%20list%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1070153%22%20slang%3D%22en-US%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F189854%22%20target%3D%22_blank%22%3E%40Robin%20Nilsson%3C%2FA%3E%26nbsp%3BI%20tried%20to%20use%20the%20JSON%20provided%20but%20SharePoint%20gives%20me%20an%20error%20that%20says%20%22Please%20enter%20valid%20column-formatting%20JSON.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1070337%22%20slang%3D%22en-US%22%3ERe%3A%20Formatting%20Dates%20in%20SharePoint%20Online%20list%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1070337%22%20slang%3D%22en-US%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F332983%22%20target%3D%22_blank%22%3E%40spinman%3C%2FA%3E%26nbsp%3BThere's%20an%20error%20in%20the%20%24schema%20code.%20Change%20this%3A%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CPRE%3E%22%24schema%22%3A%20%22%26lt%3Ba%20href%3D%22%26lt%3Ba%20href%3D%22https%3A%2F%2Fdeveloper.microsoft.com%2Fjson-schemas%2Fsp%2Fv2%2Fcolumn-formatting.schema.json%22%20target%3D%22_blank%22%26gt%3Bhttps%3A%2F%2Fdeveloper.microsoft.com%2Fjson-schemas%2Fsp%2Fv2%2Fcolumn-formatting.schema.json%26lt%3B%2Fa%26gt%3B%22%20target%3D%22_blank%22%26gt%3B%26lt%3Ba%20href%3D%22https%3A%2F%2Fdeveloper.microsoft.com%2Fjson-schemas%2Fsp%2Fv2%2Fcolumn-formatting.schema.json%26lt%3B%2Fa%22%20target%3D%22_blank%22%26gt%3Bhttps%3A%2F%2Fdeveloper.microsoft.com%2Fjson-schemas%2Fsp%2Fv2%2Fcolumn-formatting.schema.json%26lt%3B%2Fa%26lt%3B%2Fa%26gt%3B%26gt%3B%22%2C%3C%2FPRE%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3Eto%20this%3A%3C%2FP%3E%3CP%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%3E%22%24schema%22%3A%20%22%3CA%20href%3D%22https%3A%2F%2Fdeveloper.microsoft.com%2Fjson-schemas%2Fsp%2Fv2%2Fcolumn-formatting.schema.json%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdeveloper.microsoft.com%2Fjson-schemas%2Fsp%2Fv2%2Fcolumn-formatting.schema.json%3C%2FA%3E%22%2C%3C%2FFONT%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1070441%22%20slang%3D%22en-US%22%3ERe%3A%20Formatting%20Dates%20in%20SharePoint%20Online%20list%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1070441%22%20slang%3D%22en-US%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F189854%22%20target%3D%22_blank%22%3E%40Robin%20Nilsson%3C%2FA%3E%26nbsp%3BThanks.%20So%20I%20made%20that%20change%20and%20it%20let%20me%20save%20it.%26nbsp%3B%20However%2C%20the%20Exp%20Date%20doesn't%20show%20up%20unless%20you%20go%20into%20the%20record%20and%20the%20field%20is%20not%20colored%20red%20or%20green.%26nbsp%3B%20Here%20is%20what%20I%20put%20in%20the%20JSON%20format%20field%20of%20the%20Exp%20Date%20field.%26nbsp%3B%20Am%20I%20still%20missing%20something%3F%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3E%7B%0A%20%20%22%24schema%22%3A%20%22%3CA%20href%3D%22https%3A%2F%2Fdeveloper.microsoft.com%2Fjson-schemas%2Fsp%2Fv2%2Fcolumn-formatting.schema.json%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdeveloper.microsoft.com%2Fjson-schemas%2Fsp%2Fv2%2Fcolumn-formatting.schema.json%3C%2FA%3E%22%2C%0A%20%20%22elmType%22%3A%20%22div%22%2C%0A%20%20%22txtContent%22%3A%20%22%40currentField%22%2C%0A%20%20%22style%22%3A%20%7B%0A%20%20%20%20%22background-color%22%3A%20%7B%0A%20%20%20%20%20%20%22operator%22%3A%20%22%3F%22%2C%0A%20%20%20%20%20%20%22operands%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%22%3Dlength(%5B%24EffectiveDate%5D)%20%26gt%3B%200%22%2C%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%22operator%22%3A%20%22%3F%22%2C%0A%20%20%20%20%20%20%20%20%20%20%22operands%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22operator%22%3A%20%22%26lt%3B%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22operands%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%5B%24EffectiveDate%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%5B%24ExpDate%5D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22operator%22%3A%20%22%3F%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22operands%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22operator%22%3A%20%22%26lt%3B%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22operands%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%5B%24EffectiveDate%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22operator%22%3A%20%22%2B%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22operands%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%5B%24ExpDate%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%202592000000%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22green%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22red%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%22%0A%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%22%22%0A%20%20%20%20%20%20%5D%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1070533%22%20slang%3D%22en-US%22%3ERe%3A%20Formatting%20Dates%20in%20SharePoint%20Online%20list%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1070533%22%20slang%3D%22en-US%22%3EThe%20logic%20in%20the%20JSON%20doesn't%20seem%20to%20match%20what%20you%20asked%20for%20-%20what%20it%20is%20doing%20is%20showing%20Effective%20Date%20green%20if%20the%20Effective%20Date%20is%20less%20than%20ExpDate%2B1month%2C%20red%20if%20it's%20after%20that.%3CBR%20%2F%3EYou%20seem%20to%20want%20Effective%20Date%20green%20if%20the%20ExpDate%20is%20less%20than%20a%20month%20away%2C%20and%20red%20if%20it's%20after%20the%20ExpDate...%20That's%20more%20complex%20logic.%20I'm%20not%20that%20great%20in%20JSON%2C%20but%20in%20pseudo%20logic%20it%20would%20be%20something%20like%3CBR%20%2F%3E%3CBR%20%2F%3EIf%20EffectiveDate%20%26lt%3B%20ExpDate%20and%20EffectiveDate%20%26gt%3B%3D%20ExpDate-1month%20show%20green%3CBR%20%2F%3EIf%20Effective%20Date%20%26gt%3B%20ExpDate%20and%20EffectiveDate%20%26lt%3B%3D%20ExpDate%2B1month%20show%20red%3C%2FLINGO-BODY%3E
Highlighted
Occasional Contributor

I have a list with two dates one labeled "Effective Date" and one labeled "Exp Date". Both columns are using the Date & Time column type but set to Date Only.  What I'm trying to figure out is how to make the "Exp Date" Green if a date is entered and it is not within 30 days of expiring.  If the "Exp Date" is 30 days or less of expiring make it Red.

5 Replies
Highlighted
Highlighted

@Robin Nilsson I tried to use the JSON provided but SharePoint gives me an error that says "Please enter valid column-formatting JSON.

Highlighted

@spinman There's an error in the $schema code. Change this:

 

"$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>>",

 

to this:

"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",

Highlighted

@Robin Nilsson Thanks. So I made that change and it let me save it.  However, the Exp Date doesn't show up unless you go into the record and the field is not colored red or green.  Here is what I put in the JSON format field of the Exp Date field.  Am I still missing something?

 

{
  "$schema": "<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>",
  "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"
              ]
            },
            ""
          ]
        },
        ""
      ]
    }
  }
}

 

 

Solution
The logic in the JSON doesn't seem to match what you asked for - what it is doing is showing Effective Date green if the Effective Date is less than ExpDate+1month, red if it's after that.
You seem to want Effective Date green if the ExpDate is less than a month away, and red if it's after the ExpDate... That's more complex logic. I'm not that great in JSON, but in pseudo logic it would be something like

If EffectiveDate < ExpDate and EffectiveDate >= ExpDate-1month show green
If Effective Date > ExpDate and EffectiveDate <= ExpDate+1month show red
Related Conversations
MS Project - Impression GANTT + Ressources
Emmanuel57570 in Project on
1 Replies
Working with excel in Sharepoint desktop app
IanH1 in SharePoint on
2 Replies
Can't open different sections in OneNote Online
Simon_L in OneNote on
0 Replies
Documentation Migration
SunLeo in Office 365 on
0 Replies