日期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
的格式。
我们可以这样做来禁用日期日历只保留时间选择器:
在 config.yml 文件中,只需要写下这样的命令:
name: 'end_time'
label: 'End Time'
widget: 'datetime'
format: 'HH:mm A'
dateFormat: false
timeFormat: true
它看起来像这样:
我认为这是一些 timezone/UTC 问题 - 但我不太明白。
我使用以下 config.yml
:
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
的格式。
我们可以这样做来禁用日期日历只保留时间选择器: 在 config.yml 文件中,只需要写下这样的命令:
name: 'end_time'
label: 'End Time'
widget: 'datetime'
format: 'HH:mm A'
dateFormat: false
timeFormat: true
它看起来像这样: