Я не хочу заставлять пользователей использовать на моем веб-сайте только формат мм/дд/гггг.

Мое дело: Пользователь сможет выбрать, какой формат даты он предпочитает на сайте (календари, таблицы и т. д.):
30.12.2016
30.12.2016
30 декабря 2016 г.
30 декабря 2016 г.

Я не хочу накладывать какие-либо ограничения на формат ввода даты, который пользователь может ВВОДИТЬ (независимо от того, какой формат даты он будет использовать для отображения). Таким образом, любой ввод будет действительным
12302016
30.12.2016
30.12.2016
30 декабря 2016 г.
30 декабря 2016 г.
30 декабря 2016 г.
30 декабря (автоматически будет установлен текущий год)

Вопрос 1:
Это хорошая практика делать такие вещи (я не вижу никаких разумных ограничений, чтобы заставить пользователя вводить только определенный формат даты.)

Вопрос 2:
Это хорошая идея заменить формат даты на пользовательский формат, установленный пользователем, после того, как он перейдет к следующему вводу? (например, пользователи вводят «30122016», но когда он переходит в другое поле, дата будет заменена на 30 декабря 2016 г.)

Продукт производится только для рынка США

7
ProgZi 16 Апр 2016 в 21:35
Насколько важны даты на вашем сайте? Если они не имеют решающего значения для каждого путешествия, кажется странным не использовать согласованный формат, понятный всем пользователям.
 – 
Midas
16 Апр 2016 в 19:38
1
В основном события и заказы. Поэтому пользователи всегда используют даты в своем рабочем процессе. Но 1/3 всего времени они на самом деле вводят их через формы.
 – 
ProgZi
16 Апр 2016 в 20:13
Вы предлагаете (а) пользователю выбрать формат перед вводом даты? Или (б) что пользователь вводит дату в любом формате, который он хочет, и система вычисляет ее? (Я ненавижу (а) и люблю (б).)
 – 
Ken Mohnkern
17 Июн 2016 в 16:36

4 ответа

Если вы хотите, вы можете позволить пользователям выбирать свой собственный формат отображения дат (в конце концов, если им не нужна эта функция, они всегда могут придерживаться варианта по умолчанию).

Тем не менее, вы всегда должны использовать один и тот же виджет GUI для выбора даты: либо

1) календарь или

2) три раскрывающихся меню с днем, полным названием месяца и 4-значным годом

Это устранило бы всю двусмысленность в выбранной дате. После этого вы можете отобразить дату в пользовательском формате.

1
dr_ 18 Апр 2016 в 14:35

30 Dec 2016 однозначен, понятен и приемлем для всех, кто говорит по-английски, поэтому при его использовании обычно нет необходимости предлагать настраиваемый формат отображения даты. Dec 30, 2016 немного хуже.

В Интернете и в англоязычном программном обеспечении (это язык по умолчанию и запасной язык для многих неместных жителей и путешественников) полностью числовая, трехчастная григорианская дата с двумя равными разделителями всегда должна использовать строгий порядок элементов, т. е. либо большой, либо маленький. endian, никогда не смешивайте. Разделители также могут немного отдавать предпочтение одному порядку байтов по сравнению с другим, например. big/small (например, URL-адреса) и small.big. (но big.float).

Если вы хотите сохранить разговорный порядок в США, всегда используйте два разных разделителя (возможно, включая порядковые двухбуквенные суффиксы) или словесные месяцы. Если вам когда-нибудь понадобится сократить год до двух цифр, добавьте апостроф впереди.

Запрещенные числовые форматы отображения даты

Они по своей сути сломаны и возлагают на читателя более высокую когнитивную нагрузку, чем необходимо.

  • ММДДГГГГ: 12/30/2016, 12.30.2016, 12-30-2016
  • ГГГГДДММ: 2016/30/12, 2016.30.12, 2016-30-12
  • ДДММГГ: 30/12/16, 30.12.16, 30-12-16
  • ММДДГГ: 12/30/16, 12.30.16, 12-30-16
  • ГГММДД: 16/12/30, 16.12.30, 16-12-30
  • ГГДДММ: 16/30/12, 16.30.12, 16-30-12

(Наименее плохие выделены.)

Нерекомендуемые числовые форматы отображения даты

Они по своей сути хороши, но могут быть двусмысленными без надлежащего контекста из-за распространения запрещенных форматов.

  • ДДММГГГГ: 30/12/2016, 30.12.2016, 30-12-2016
  • ДДММГГ: 30/12/’16, 30.12.’16, 30-12-’16
  • ГГММДД: ’16/12/30, ’16.12.30, ’16-12-30
  • ММДДГГГГ: 12/30, 2016
  • ММДД: 12/30, -12-30
  • ДДММ: 30.12.
  • ГГГГММ: 2016/12, 2016-12 (оба могут быть ошибочно приняты за диапазоны лет, если ГГ < 12)
  • ММГГГГ: 12/2016, 12, 2016

Допустимые числовые форматы отображения даты

  • ГГГГММДД: 2016/12/30, 2016-12-30, 2016.12.30

Как видите, единственными приемлемыми полностью числовыми форматами являются не те, с которыми хорошо знакома ваша целевая группа, поэтому не используйте их!

Ввод даты в произвольном тексте должен распознавать любое однозначное значение (включая запрещенные форматы и кажущиеся избыточными форматы с днем ​​недели), но он также может информировать пользователя о предпочтительном формате и допустимом диапазоне дат (что также может помочь выбрать интерпретацию). . Он должен обеспечивать немедленную обратную связь с пользователем для проверки проанализированного результата и, особенно при наличии какой-либо неопределенности, предоставлять пользователю средства для исправления данных в любое время.

0
Crissov 20 Июл 2016 в 01:02

Похоже, здесь две проблемы, объединенные в одну.

Отображение дат для удобства чтения

Как упомянул Криссов в своем ответе, некоторые форматы даты сложнее понять, чем другие. Что вам нужно сделать, так это выбрать наиболее часто используемые форматы даты и представить их как варианты для пользователя.

Например

  • 1 января 2016 г. (Северная Америка)
  • 1 января 2016 г. (Европа)
  • 01.01.2016 (Азия / другие страны)

Пока месяц, день, год упорядочены так, как знаком пользователь. Используете ли вы косую черту, тире или точки и т. д., это не имеет большого значения.

Разрешить простой ввод даты

Лучший ввод должен быть независимым от формата. Пользователь может ввести дату в любом формате (например, 1 января, 01-01-2016, 2016.1.1), и система должна понять и отформатировать ее в формате даты, выбранном на предыдущем шаге.

0
Community 16 Июн 2020 в 13:51
Таким образом, пользователь, вводящий 04.03.16, интерпретируется как 3 апреля, если пользователь ранее выбрал «Европу», и 4 марта, если он выбрал «Северную Америку»? Вы бы порекомендовали изменить дату ввода на формат отображения? (То есть изменить 04.03.16 в записи, чтобы она отображалась как 4 марта 2016 года?)
 – 
Andrew Leach
20 Авг 2016 в 12:01
Да на оба вопроса. Если установлен «европейский» формат даты, «3/4/16» будет заменено на 3 апреля 2016 г. Если параметр настроен на «североамериканский» формат, он будет заменен на 4 марта 2016 г. Пользователи редко вводят даты в обоих форматах. форматы. Также легче обнаружить ошибку, когда вы пишете месяц.
 – 
nightning
22 Авг 2016 в 19:16

Самое главное, чтобы пользователи получали четкий отзыв о том, успешно ли они ввели его.

Zotero desktop для Mac прекрасно справляется с этой задачей, сообщая пользователю, как интерпретируется его ввод. Обратите внимание, что пользователю не нужно выбирать формат, просто введите значение в поле даты.

Зотеро Пример 1

Zotero date input example 1

Зотеро Пример 2

Zotero date input example 2

Зотеро Пример 3

Zotero date input example 3

0
JeroenEijkhof 18 Сен 2016 в 08:17