Здравствуйте, меня зовут Дмитрий Карловский, и я.. буквально только что написал эту статью. Ну, на самом деле вчера. А если точнее, то в этом году. Удачи вам понять когда же именно.
Для отображения в интерфейсе предпочтительнее абсолютная временная шкала, которая создаёт минимум трудностей для пользователя во всём многообразии сценариев использования.
Далее вашему вниманию представлен чуть более подробный, но всё же бесчеловечный анализ этого вопроса..
Абсолютная шкала времени
2023-12-06 00:53
6 Dec'23 00:53
Wed, 6 Dec 2023
✅ Понимание точного момента времени независимо от текущего времени.
✅ Легко упорядочивать разные значения между собой и понимать расстояние между ними.
✅ Просто и надёжно в реализации с минимальными накладными расходами.
❌ Для соотнесения с текущим (или любым другим) временем нужно его помнить/посмотреть и произвести нехитрые расчёты в уме.
Относительная шкала времени
after 3 hours
just now
a minute ago
5 minutes ago
23 hours and 59 minutes ago
yesterday
2 years ago
✅ Понимание удалённости от текущего времени без дополнительных расчётов.
✅ Более человечный, не формальный вывод.
⭕ Сложно или не возможно определить точный момент времени. В лучшем случае оно показывается в подсказке по нажатию/наведению.
⭕ Сложно сравнивать разные значения между собой: понимать какое событие было раньше и на сколько.
⭕ Сильно удалённые события могут попасть в один временной промежуток и создать впечатление своей близости или даже одновременности.
⭕ Очень близкие события могут попасть в разные временные промежутки и создать впечатление своей удалённости друг от друга.
❌ Сложно пользоваться поиском по времени, так как формат представления не единообразен.
❌ Требуется локализация текстов на множество языков с разными словоформами после числительных.
❌ Не соответствует действительности, если нет обновления в реальном времени по любой причине: от распечатки на принтере, до сломавшегося скрипта.
❌ Обновление в реальном времени нагружает систему и может приводить к скачкам лейаута при изменении длины.
❌ Длина может быть как сильно меньше, так и сильно больше абсолютной шкалы.
❌ Требует загрузки и исполнения нетривиальной логики, что удорожает поддержку и повышает багоёмкость.
Комбинированная шкала времени
Yesterday, Wed, 6 Dec 2023 00:53
2023-12-06 00:53, Wed, 2 years ago
✅ Понимание точного момента времени независимо от текущего времени.
✅ Легко упорядочивать разные значения между собой и понимать расстояние между ними.
✅ Понимание удалённости от текущего времени без дополнительных расчётов.
⭕ Сильно удалённые события могут попасть в один временной промежуток и создать впечатление своей близости.
⭕ Очень близкие события могут попасть в разные временные промежутки и создать впечатление своей удалённости друг от друга.
⭕ Относительное значение не соответствует действительности, если нет обновления в реальном времени по любой причине: от распечатки на принтере, до сломавшегося скрипта.
❌ Занимает сильно много места.
❌ Требуется локализация текстов на множество языков с разными словоформами после числительных.
❌ Обновление в реальном времени нагружает систему и может приводить к скачкам лейаута при изменении длины.
❌ Требует загрузки и исполнения нетривиальной логики, что удорожает поддержку и повышает багоёмкость.
Материалы по теме
$mol_time - работаем со временем правильно
Комментарии (75)
icya
06.12.2023 10:20+4Какую шкалу вы бы предпочли лично для себя?
Вариант "Зависит от ситуации" не рассматривается?
nin-jin Автор
06.12.2023 10:20+8Проектировщик интерфейса не может знать, какая конкретно у вас в конкретно данный момент ситуация, поэтому должен сделать выбор без оглядки на это.
icya
06.12.2023 10:20+1И мы снова вернулись к тому, что было: пожертвовать удобствами одних пользователей в пользу других, или сделать так, чтобы в один момент времени каждому пользователю было удобно (главное, не перегрузить интерфейс: https://xkcd.com/1406/).
nin-jin Автор
06.12.2023 10:20+8Скорее вопрос в том, стоит ли максимизировать удовольствие в 1 кейсе из 10, или же лучше минимизировать неудобства в 9 кейсах из 10.
ABRogov
06.12.2023 10:20+11Относительная шкала (и особенно грубая, символическая) это не просто неудобство для других, это прямая не возможность использования во многих сценариях уже обозначенных в статье, тот же поиск по дате и т.п.
icya
06.12.2023 10:20Я понимаю, что иногда относительное время неудобно (например, дата публикации поста), однако далеко ходить не будем и возьмём комментарии к этой статье. У каждого комментария есть относительное время поэтому закономерный вопрос:
Насколько важно знать точное время комментария? И, пожалуйста, давайте без примеров со скриншотами (имхо, это редкий кейс).
Можно даже взять чуть больше: Насколько важно знать время комментария (даже относительно)?
baldr
06.12.2023 10:20+2В принципе, с разрешением меньше часа - вряд ли нужно, хотя иногда полезно видеть насколько комментарий свежий.
А часто бывает так - отложил статью, заходишь через несколько дней (неделю) - а там интересная дискуссия.. Если последние комментарии не старше 1-2 дней - то еще можно ввязаться и ответить, а если старше - скорее всего уже участники не вернутся.
K0styan
06.12.2023 10:20+3Начну со второго вопроса: в 99% случаев важна только последовательность. Просто чтобы понимать, кто на что отвечает, нить разговора удерживать. Время нужно в исключительных случаях.
Но при этом если оно нужно, то нужно абсолютное, причём, пожалуй, с точностью до минуты.
icya
06.12.2023 10:20+1В случае с комментариями, если нам важна последовательность, то чем один вариант отображения лучше другого? Возможно, в моём случае я быстрее считываю относительное время чтобы определить эту последовательность, в то время как другие так же быстро считывают абсолютное время.
Скриншот с относительным временем
Скриншот с абсолютным временем
И если абсолютное время нужно в исключительных случаях, нужно ли использовать его в остальных не исключительных случаях?
K0styan
06.12.2023 10:20+1Даже задача последовательности решается просто тем, что комментарии выстроены хронологически + древовидно. Тут тоже есть крайние случаи, типа бурной переписки между 3-4 участниками, когда каждый отвечает каждому - да ещё происходит это в глубине дерева, когда отступы уже не отображаются. Но тут (если действительно интересно в чужом флейме разобраться)) так и так приходится голову включать, об интуитивном считывании вполглаза речь не идёт. Так что вопрос опять же сводится не к относительности/абсолютности, а к точности.
Грубо говоря, минуты - нужны, а будет ли это "в 9:43" против "в 9:48" или "2 часа 13 минут назад" против "2 часа 7 минут назад" - уже не очень критично.
Что до второго вопроса - зависит от контекста и общего, гхм... уровня ответственности системы. Для корпоративного почтового клиента, скажем, где на основании писем принимают дорогие решения - лучше заложиться на исключительные случаи. Комментарии к блогу? - да господь бы с ними...
Hlad
06.12.2023 10:20+1Сейчас - не важно. Когда же я через пять лет найду этот пост - может оказаться критически важно именно точное время.
saboteur_kiev
06.12.2023 10:20+2Проектировщик интерфейса не может знать, какая конкретно у вас в конкретно данный момент ситуация, поэтому должен сделать выбор без оглядки на это.
Пусть сделает выбор в сторону опций.
1mishanya
06.12.2023 10:20+1Сегодня мне важно одно, завтра я постиг дзен и мне важно другое, а соседу вообще никогда не было важно то, что важно мне, у него свой путь. Я не понимаю проектировщиков, которые отказываются от предоставления возможности выбора самому пользователю: "Мы сами за вас решили, как вам будет удобнее".
nin-jin Автор
06.12.2023 10:20+4Проектирование интерфейса с богатыми возможностями выбора на порядок более сложная задача. И разумный выбор дефолтного поведения - её составная часть.
1mishanya
06.12.2023 10:20Если сложно, тогда просто дата и время с привязкой к часовому поясу пользователя, чтобы не было посланий из будущего и т.д. В газетах уже не одну сотню лет так делают, зачем изобретать велосипед?
K0styan
06.12.2023 10:20+1Любой интерфейс предназначен для конкретных сценариев, актуальных в определённом контексте. Ситуацию в общем случае проектировщих знать не может, но контекст и сценарии-то?
domix32
06.12.2023 10:20+1А что тот проектировщик делает интерфейс для сферического коня в вакууме? Как он может делать выбор для того, чего ещё не придумали?
Считаю, что "был онлайн" имеет смысл писать в относительных единицах, возможно сегодняшние сообщения в мессенджерах, тоже. Больше хороших кейсов для относительного времени не могу сходу придумать.
baldr
06.12.2023 10:20+11Да что далеко ходить - хабр показывает время комментариев и статей так же.
Открыл страницу, оставил на три дня, пришел - время не поменялось.
1mishanya
06.12.2023 10:20+4Как раз-таки на Хабре ещё нормально сделано. Наводишь мышью и показывает точное время.
baldr
06.12.2023 10:20+15Узнал об этом из вашего комментария. Пойду ещё приклею мышь к телефону тогда.
1mishanya
06.12.2023 10:20+2Обычно в телефонах верстка и возможности упрощаются до минимума. Компромиссы везде и реклама на весь экран, поэтому ховеры - это не самая большая проблема.
vadimk91
06.12.2023 10:20+3И мне пожалуйста приклейте) На работе я и коллега периодически отсылают смс-ки клиентам с одного и того же рабочего телефона. Берешь такой телефон, разблокируешь, а там открывается чат ("сообщения" в прошлой жизни) и у последнего сообщения время "отправлено только что", предыдущее "4 минуты назад". Сначала тупишь, телефон уже полдня лежит у тебя на столе, а оказывается коллега не вышла из приложения и последние сообщения "вечно молодые". Тьфу, сколько раз на этом спотыкался и не могу привыкнуть.
Alexufo
06.12.2023 10:20+1Открыл страницу , ушел на три дня, твой браузер гоняет пол тысячи коментаниев каждую минуту за обновлением даты. Вернулся, а твой интернет закончился.
Локально? Гонять js обновляя вёрстку все три дня раз в минуту тоже такое себе.
Fell-x27
06.12.2023 10:20+1Я может вне контекста, но зачем гонять запросы туда сюда? Ведь достаточно просто один раз за комментом закрепить временнУю метку, а дальше можно любые вычисления, преобразования и отображения делать здесь-и-сейчас. Относительные, абсолютные, кисло-фиолетовые, какие угодно. С учётом локали и часового пояса клиента. Оффлайн.
Alexufo
06.12.2023 10:20Верно.Я просто размышлял в рамках реактивной ленты. Если у вас есть актуальные счетчики времени у сообщений, то актуален ли экран через три дня? Ничего не повилось ли нового? А кто его знает. Если вы обновляете счетчики оффлайн, это может навести на мысль что и лента актуальна, а нет. Она не актуальна, зачем тогда вводить в заблуждение. Человек понимает, что состояние всего интерфейса актуально на момент загрузки так и пусть остается в такой привычной исторческой парадигме, либо парадигма должна быть другой - поток всего и счетчиков и сообщений, хотя все равно и тут можно делать локальные вычисления, а что если они идут а интернет пропал... вобщем нюансы нюансы
ABRogov
06.12.2023 10:20+9Дело не только в том, что дата относительная, дело еще в том, что она огрубляется со временем. Не пишут же один год, одиннадцать месяцев, 3 недели и 4 дня назад, а пишут просто Год назад, хотя уже почти два.
lanabel
06.12.2023 10:20Насчёт локализации и сложной логики - не особо аргумент, т.к. обычно уже есть библиотеки, где всё это реализовано.
Огрубление периода часто напрягает, но иногда лучше так, чем не показывать дату вообще. Часто почему-то встречаю такое в технических и юридических статьях, где почти невозможно определить актуальность материала, потому что премудрый SEO-шник сделал заголовок в стиле "3 способа как это сделать в $year году", а даты фактического обновления материала днём с огнём не найти.
nin-jin Автор
06.12.2023 10:20+1Обычно библиотеки, которые уже есть, такого хорошего качества, что приходится пилить свои. Первая статья из доп материалов как раз про это.
dsh2dsh
06.12.2023 10:20+11"Обожаю" относительное время в интерфейсах. Достаю телефон из кармана, открываю СМС, вижу список, у сообщения написано Четверг. Стою, ломаю голову, какой четверг, когда этот четверг был?
Alexufo
06.12.2023 10:20модель?
Astus
06.12.2023 10:20+19Позапрошлая.
Alexufo
06.12.2023 10:20))) Да я про конкретную оболочку, за чьим геройством девайс?
Astus
06.12.2023 10:20+1Самому интересно) Ждём ответа от товарища dsh2dsh.
Проверил у себя (iPhone XS, iOS 16) - если смс пришла в течение прошлой недели (7-ми дней), пишет только день недели, если позже - полную дату в общем списке сообщений, внутри списка сообщений конкретного отправителя - по тому же принципу, только со временем и есть ещё "вчера/позавчера".
Раньше не обращал внимание, но да, я бы предпочёл просто дату, везде и всегда. Или, как минимум, комбинированный вид "Вт, 21 нояб., 16:32", который там тоже есть, но только для старых смс и только внутри отправителя.K0styan
06.12.2023 10:20Проверил на Андроиде - Пиксель, 14 версия, по-Гугловски чистая, смотрел в дефолтном приложении "Сообщения". Ровно то же самое.
Не суперудобно, но вопросов "какой четверг" не возникает.
Astus
06.12.2023 10:20+1На Андроиде, вероятно, можно настроить отображение как угодно, на iOS вариантов нет.
Мне важно не "какой четверг", а какая дата, вот этого не хватает, я лучше ориентируюсь по календарю, чем по дням недели, особенно когда стал работать дома.dsh2dsh
06.12.2023 10:20+1Не на те мелочи вы внимание обращаете. Это S21 и Google Messages. В списке одно сообщение, т.е. сравнить не с чем. Откуда я должен знать, что раз написано просто четверг, то это прошлый четверг? Почему я вообще должен об этом думать? Вот на что нужно обращать внимание. Сейчас я некоторое время буду помнить это, а потом снова забуду и в следующий раз снова буду думать, когда этот четверг был.
Astus
06.12.2023 10:20Так я с Вами согласен. У меня то же самое, когда одно сообщение (сейчас проверил). И четверг там или вторник мне не особо интересно, нужна дата, хотя бы допом ко дню недели.
Mingun
06.12.2023 10:20К слову, а вы что, видели варианты, когда "Четверг" относится не к последнему четвергу (т.е. 1-7 дней назад)? Расскажите про это гениальное приложение
dsh2dsh
06.12.2023 10:20Не могу припомнить детали, но что-то типа этого точно видел. Потому и отношусь к таким вещам настороженно.
K0styan
06.12.2023 10:20В Outlook-е странный гибрид:
письма текущей недели помечаются днём недели и временем: Пн, 13:09
письма прошлой недели - днём недели и числом: Пн, 13.09
старше двух недель - просто полной датой: 13.10.2023
То есть технически-то различить можно всегда, но иногда точечку упустить - как нефиг делать.
ganzmavag
06.12.2023 10:20+9Для меня самая большая загадка - использование относительной шкалы времени в Инстаграм при просмотре старых постов. Информация, что фото было сделано 456 дней назад, выглядит не просто бесполезно, а как издевательство.
kirik
06.12.2023 10:20+3Хотел тоже написать коммент про инстаграм, но они исправились и теперь дату пишут. Раньше писали не просто дни, а "36 недель" - без калькулятора для беременных не разберёшься..
dprotopopov
06.12.2023 10:20+12023-12-06 00:53 6 Dec'23 00:53 Wed, 6 Dec 2023
Вы не точно указали время - оно должно включать либо географические координаты, или тайм-зону, либо указание, что используется время по гринвичу.
И вообще - это может быть ваше личное время, которое связано/не связанно с григорианским/юлианским календарём
Mingun
06.12.2023 10:20+1У Маска же в трансляциях "Земля" пишется, так что и тут надо. Кто знает, может человек уже по марсианскому живет.
nin-jin Автор
06.12.2023 10:20+2Если не указано иное, то это должно быть локальное время пользователя.
Sly_tom_cat
06.12.2023 10:20+1Абсолютное, относительное.... с некоторым неудобством любая лучше чем полное отсутствие временной отметки на заметке/статье, которое все чаще стало встречаться....
MapleBloom
06.12.2023 10:20+4Вот так вот просто? Смотришь на статью / сообщение / проч. событие и видишь дату, время? Так можно?
А может еще можно в будильнике время циферками ввести, а не крутить дурацкие колесики?
Но чем же тогда будут заниматься уй-дизайнеры, если не придумывать нам ненужные ценности?
andreishe
06.12.2023 10:20Поэтому будильники и таймеры я на телефоне настраиваю голосовым помощником. И это единственное его полезное применение.
aik
06.12.2023 10:20+5Пусть пишут просто время и дату. Не надо делать из меня идиота, который неспособен держать в голове сегодняшнее число.
А потом начинать делать из меня гения, который отличит "вчера" от "вчера" и моментально высчитает дату по "386 дней тому назад".
На "вчера, 6 декабря" я согласен, но тут зачастую не ставят время сообщения. Или ставят только время последнего, если несколько сообщений было.
Конечно, можно сделать настройку, чтобы и вашим и нашим, но базово лучше писать точное время. Более универсально.
ksbes
06.12.2023 10:20-1Очень интересная статья. А теперь я выйду через северный выход, пойду в самый западный туалет и сяду южную кабинку (которая между западной и восточной - хорошо их только три: не приходится все румбы вспоминать). А начальству быстренько уточню, что вернусь в 10.05 7 декабря 2023 года. Всегда так делаю.
Только , блин, беда! И стороны света отсчитываются относительно Земли, и часы отсчитываются относительно положения солнца и год - относительно рождения Иисуса Христа (а много где и по-другому)! Где, где мне взять эту восхитительную абсолютную шкалу?
VADemon
06.12.2023 10:20У Маска же в трансляциях "Земля"
относительно Земли
Кстати, текущие форматы времени совершенно не располагают уточнением небесного тела.
vvbob
06.12.2023 10:20+32023-12-06 00:53 6 Dec'23 00:53 Wed, 6 Dec 2023
Таймзоны не хватает, без нее тут еще остается неоднозначность :)
andersong
06.12.2023 10:20+1Мне нравится, как в ВК пишется: "Был вчера, 23:00" , сразу понятно, чел сегодня еще не заходил, наверно спит.
А в телеге пишется "Был недавно", хоть это 10 минут назад, хоть 2 дня. Вроде и секурней, но практически бесполезно.
K0styan
06.12.2023 10:20+1В телеге зависит от режима приватности, причём он там обоюдный. Управляется пунктом настроек Last seen & Online
Если там закрыться (например, поставить Nobody или перечислить конкретных людей), то и другие будут видеть у вас только вот эти recently/within a month/long time ago, и вы у них будете видеть такое.
Если открыться, точнее, если оба участника чата друг для друга открылись - то будет конкретное время и/или дата.
StriganovSergey
06.12.2023 10:20+3Вроде, норм такое решение:
по клику на дате переключать режим отображения - абсолютное/относительное время.
Так в навигаторах делают (сколько осталось ехать/во сколько приедешь).
Эту бы практику повсеместно в интерфейсах принять как стандарт.
Vsevo10d
06.12.2023 10:20+2Я вот смотрю одного таежного блогера, и мне интересно смотреть его видосы в хронологическом порядке. Но это надо тыкать на канал, потом на вкладку всех видосов и листать. Понять, сует ли мне предложка после просмотра хронологически следующий ролик или просто популярный, я не могу - они помечены по времени публикации "год назад", "джва года назад", а в год их выходит у него больше пары десятков.
И вообще, любовь к относительному у людей меня вымораживает. Вечно вместо того, чтобы назвать точный адрес, или же номер кабинета, я слышу от людей "ну там выйди пойди налево направо направо налево направо налево направо до моста направо налево у кактуса направо у плаката с Борисом Моисеевым налево по лестнице вверх, но не до конца и там будет этсамое ну увидишь".
funca
06.12.2023 10:20Для отображения в интерфейсе предпочтительнее абсолютная временная шкала, которая создаёт минимум трудностей
Интерфейс, в первую очередь отвечает на насущные вопросы пользователя. Предпочтения это вкусовщина, когда вопрос уже отвечен.
Если вопрос "в какое время?" - выводим абсолютное.
Если вопрос: "сколько времени прошло? / через сколько это будет?" - выводим относительное.
Понять какие у юзера вопросы это вообще продуктовая тема.
Если вопросы могут меняться от сценарию к сценарию в одних и тех же экранах - вызываем пояснительную бригаду UI/UX. Им за это деньги платят.
Mike-M
06.12.2023 10:20+1Давно ждал статью на эту тему. Спасибо автору, что обратил внимание!
Судя по опросу и комментариям, почти 3/4 всё-таки за абсолютную шкалу времени.
Я тоже. А то напишешь отзыв на каком-нибудь Маркете, сделаешь скриншот, отправишь его кому-нибудь через пару лет (когда ссылка на отзыв уже не работает), и приходится потом объяснять «Зачем ты "сегодня" написал отзыв на товар, которой уж год как сняли с производства/продажи".
Но вот ведь какой грустный парадокс получается: абсолютное большинство за абсолютную шкалу, а в нынешнем вебе и мобиле царит относительная (
Прямо хоть рассылай эту статью всем дизайнерам мира ))
K0styan
В некоторых сценариях действительно удобнее относительная шкала. Ну то есть мне проще планировать перемещения и дополнительные действия с пониманием, что у меня до события в запасе 2 часа, чем с пониманием, что оно стартует в 15:20. И, кстати, в основном эти сценарии - про будущее время.
Но что сильно раздражает - это манера округлять это относительное время до единственной размерности. Вчера. Неделю назад. Год назад. Потеря информации - есть. Выигрыш в виде быстрой оценки интервала - и не работает как надо, и (для прошедших событий) в целом малополезен.
INSTE
Чаще всего, когда до события "два часа", мне важнее знать осталось 1:50 до события или же 1:05, а не плюс-минус час. В первом случае еще можно пообедать, а во втором срочно нужно садиться в такси. Потому и тут такое себе.
upd: Кстати пришла в голову идея про "автоматическое загрубление". То есть пока в единицах не превышен некоторый порог, скажем 2 или 3, выводить две ступени + округление с "почти": не "1 год назад", а "1 год и 6 месяцев назад", но не "3 года и 10 месяцев назад", а "почти 4 года назад". Также и с временем: не "2 часа назад", а "1 час 57 минут назад", но не "4 часа и 3 минуты назад", а "4 часа назад".
K0styan
Так я и пишу: если и делать относительное время, то не загрубляя (я это округлением назвал, но за формулировку не держусь).
Идее с "автоматическим загрублением" нас ещё на лабораторках в институте учили: в результатах измерений должна быть одна значащая цифра, но если единственной остаётся единица - то надо добавить вторую. Т.е. 2*10^3 или 1,2*10^3.
Можно ещё просто всегда 2 соседние единицы указывать: либо 2 недели и 1 день, либо 1 день 2 часа, либо 2 часа 12 минут.
Но меня во всём этом другое раздражает. Выглядит всё это по большому счёту как решение какой-то неверифицированной проблемы.
VADemon
Не видел доселе ни одной программы, где бы удовлетворительно работал показ веса в приставка+байты для любых величин. Пример: 2.1 ГБ при текущей скорости скачивания 100 КБ/с - это плохо.
INSTE
Со скоростью загрузки правда, но время-то течет у всех одинаково? Тут как раз можно нащупать удовлетворительную степень точности.
VADemon
Согласен, но отвечу как и nin-jin ниже: обдумывать и писать самому.