日期widget/input 似乎保存显示不一致

Date widget/input appears to save inconsistent to display

我认为这是一些 timezone/UTC 问题 - 但我不太明白。

我使用以下 config.yml:

在我的 Gatsby 网站上设置了 Netlify CMS
backend:
  name: git-gateway
  branch: master

publish_mode: editorial_workflow

media_folder: src/images/uploads
public_folder: /uploads

collections:
  - name: "tourInfo"
    label: "Tour Info"
    files:
      - file: "static/json/tours.json"
        label: "Tours"
        name: "tours"
        fields:
          - {label: "Tour", name: tour, widget: list, fields: [
            {label: "Date", name: date, widget: "date"},
            {label: "Spaces", name: spaces, widget: "number"},
            {label: "Booked", name: booked, widget: "number", required: false} ]}

我用它来创建巡演日期,但在这样做时出现了不一致:

通过 CMS 选择日期时,日期显示正确如上。

但随后日期保存为:

这明显和我输入的日期不一致

此行为在前端通过 Gatsby 获取的所有输入日期也是一致的:

[
   {
      "date":"2019-04-03T23:35:50.291Z",
      "spaces":6,
      "booked":6
   },
   {
      "date":"2019-04-17T23:36:08.718Z",
      "spaces":6,
      "booked":null
   },
   {
      "date":"2019-05-01T23:36:19.622Z",
      "spaces":6,
      "booked":null
   },
   {
      "date":"2019-05-15T23:36:33.206Z",
      "spaces":6,
      "booked":null
   },
   {
      "date":"2019-06-05T23:36:49.265Z",
      "spaces":6,
      "booked":null
   },
   {
      "date":"2019-06-19T23:37:09.924Z",
      "spaces":6,
      "booked":6
   }
]

他们整天都在外面。

我怀疑这是某种时区问题?我的语言环境目前在 BST。

当然,在使用 date 小部件时,时间应该无关紧要 - 为什么 Netlify 甚至必须节省时间?我只是输入日期。

我该如何纠正这个问题?所以当我输入 2019/04/04 我得到 2019/04/04?

可以在 NetlifyCMS 中设置日期格式。

例子

{label: "Date", name: date, widget: "date", dateFormat: "YYYY-MM-DD", "format": "YYYY-MM-DD"},
  • dateFormat 是小部件输出
  • format是数据输出

这些格式是基于 moment 的格式。

See Docs

我们可以这样做来禁用日期日历只保留时间选择器: 在 config.yml 文件中,只需要写下这样的命令:

name: 'end_time'
label: 'End Time'
widget: 'datetime'
format: 'HH:mm A'
dateFormat: false
timeFormat: true

它看起来像这样: