将 Microsoft List 日期列值设置为 @now 会导致错误:“输入这样的日期和时间”

问题描述 投票:0回答:1

使用 JSON 列格式,我在 Microsoft 列表中设置了一个按钮,单击该按钮时会设置三列的值:

"customRowAction": {
"action": "setValue",
"actionInput": {
"St01Status": "=if([$St01Status] == 'Completed', 'Pending', 'Completed')",
"St01Appver": "=if([$St01Status] == 'Completed', '', '@me')",
"St01AppDate": "=if([$St01Status] == 'Completed', '', '@now')"
}

我发现在一台计算机上使用Chrome浏览器时,此行会导致错误:

"St01AppDate": "=if([$St01Status] == 'Completed', '', '@now')"

错误是:

“输入如下日期和时间:2012 年 12 月 23 日下午 2:25”

所以它不喜欢

@now
正在生成的内容。

但是在其他计算机上,它不会导致错误,并执行所需的行为。

看来这是Chrome浏览器中

Language
设置造成的。

当语言设置为

English (United States)
时,该按钮将按需要工作。

当语言设置为

English (Australia)
时,该按钮会导致错误。

奇怪的是,列表所在的站点的区域设置是

English (Australia)
- 所以您会认为行为会是相反的。

问题

如何创建一个无论浏览器的语言设置如何都可以工作的

@now
值?

下面是两个浏览器中的语言设置和站点区域设置的屏幕截图。

供参考,这里提出了相关问题但从未收到答案:

在 SharePoint Online 列表中记录当前日期和时间不断中断 - 需要一个稳定的解决方案

sharepoint-online sharepoint-list
1个回答
0
投票

我的 SharePoint 列表中有一个日期和时间(仅包含日期设置)列。

我正在使用这个 JSON,它对我来说效果很好:

{
  "$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
  "elmType": "button",
  "txtContent": "Update item",
  "customRowAction": {
    "action": "setValue",
    "actionInput": {
      "DateColumn": "=if([$Status]=='Completed',[$DateColumn],toLocaleDateString(@now))"
    }
  }
}

其中

DateColumn
Status
是 SharePoint 列表列的内部名称。您可以按照本文获取列的内部名称:如何在 SharePoint Online 中查找列的内部名称?

输出

© www.soinside.com 2019 - 2024. All rights reserved.