我正在尝试使用 JSON 格式化 SharePoint Online 列表中的某些列。通过简单的列格式设置,我已经接近我想要的位置,以便今天之前到期的项目显示为红色突出显示,今天到期的项目为金色。我的挑战是,我只希望明天到期的项目为绿色 - 明天之后到期的项目不应突出显示。但老实说,我完全不知道如何做到这一点。
自动生成的代码如下:
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "div",
"style": {
"box-sizing": "border-box",
"padding": "0 2px",
"overflow": "hidden",
"text-overflow": "ellipsis"
},
"attributes": {
"class": {
"operator": ":",
"operands": [
{
"operator": "==",
"operands": [
"@currentField",
""
]
},
"",
{
"operator": ":",
"operands": [
{
"operator": "<",
"operands": [
{
"operator": "Date()",
"operands": [
{
"operator": "toDateString()",
"operands": [
"@currentField"
]
}
]
},
{
"operator": "Date()",
"operands": [
{
"operator": "toDateString()",
"operands": [
"@now"
]
}
]
}
]
},
"sp-css-backgroundColor-BgRed sp-css-borderColor-WhiteFont sp-field-fontSizeSmall sp-css-color-WhiteFont",
{
"operator": ":",
"operands": [
{
"operator": "==",
"operands": [
{
"operator": "Date()",
"operands": [
{
"operator": "toDateString()",
"operands": [
"@currentField"
]
}
]
},
{
"operator": "Date()",
"operands": [
{
"operator": "toDateString()",
"operands": [
"@now"
]
}
]
}
]
},
"sp-css-backgroundColor-BgGold sp-css-borderColor-GoldFont sp-field-fontSizeSmall sp-css-color-GoldFont",
{
"operator": ":",
"operands": [
{
"operator": "==",
"operands": [
{
"operator": "Date()",
"operands": [
{
"operator": "toDateString()",
"operands": [
"@currentField"
]
}
]
},
{
"operator": "Date()",
"operands": [
{
"operator": "toDateString()",
"operands": [
"@now"
]
}
]
}
]
},
"sp-css-backgroundColor-BgMintGreen sp-css-borderColor-MintGreenFont sp-field-fontSizeSmall sp-css-color-MintGreenFont",
""
]
}
]
}
]
}
]
}
},
"txtContent": "@currentField.displayValue"
}
我知道问题所在,我必须解决的问题就在这个块中:
{
"operator": "Date()",
"operands": [
{
"operator": "toDateString()",
"operands": [
"@now"
]
}
]
}
因为我需要将 84600000 添加到 @now 来计算明天,但如果我能找到正确的语法来做到这一点,我就该死了。
任何帮助将不胜感激!
我已经尝试过了
{
"operator": "Date()",
"operands": [
{
"operator": "toDateString()",
"operands": [
"@now",84600000
]
}
]
}
但事情绝对没那么简单。
你找到这个问题的答案了吗?