Виджет / ввод даты отображается для сохранения несоответствия для отображения

Я полагаю, что это проблема с часовым поясом / UTC, но я не могу этого понять.

Я установил Netlify CMS на своем веб-сайте Gatsby, используя следующие 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?


person BML91    schedule 06.04.2019    source источник


Ответы (2)


В NetlifyCMS есть возможность установить формат даты.

Пример

{label: "Date", name: date, widget: "date", dateFormat: "YYYY-MM-DD", "format": "YYYY-MM-DD"},
  • dateFormat - вывод виджета
  • format - вывод данных

Эти форматы основаны на moment форматировании.

См. документы

person talves    schedule 06.04.2019
comment
Спасибо, проблема устранилась. Я должен признать, что поведение по умолчанию все еще кажется немного странным и подверженным ошибкам. - person BML91; 07.04.2019
comment
Я согласен. Было бы неплохо выяснить, что происходит с виджетами даты в документации. - person talves; 07.04.2019

Мы можем сделать это, чтобы отключить календарь даты, сохраняющий только селектор времени: Внутри файла config.yml просто нужно записать что-то вроде этой команды:

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

Это будет выглядеть так:

введите описание изображения здесь

person Damon Wu    schedule 24.09.2019