Itens mais antigos do que ontem devem exibir a data real
(grumpy.website)- Os rótulos de data relativa na interface web parecem linguagem humana, mas muitas vezes não correspondem à forma como os usuários realmente pensam sobre datas
- Para as pessoas, “yesterday” é o dia anterior ao de hoje, das 0h às 23h59, e não simplesmente “menos de 24 horas atrás”
- Se cada implementação usa um critério diferente, até dentro do mesmo serviço a indicação de “yesterday” pode oscilar, reduzindo a confiabilidade na exibição de datas
- Exibir há quantos dias algo aconteceu apenas com números, como em “12 days ago”, se distancia da percepção de tempo que as pessoas usam naturalmente
- Como “last week/month/year” também cobre intervalos amplos e ambíguos, para itens mais antigos do que ontem é mais claro mostrar uma data específica
Por que rótulos de data relativa confundem
- Expressões como “yesterday”, “2 days ago” e “a week ago” parecem formas humanas de expressar o tempo, mas não são precisas o bastante para determinar datas reais
- Em especial, “yesterday” tem um significado claro para o usuário
- significa o dia anterior ao de hoje
- refere-se ao intervalo entre 0h e 23h59 desse dia anterior
- é diferente de um cálculo de “menos de 24 horas”
- Sistemas podem implementar “yesterday” de maneiras diferentes e, se a exibição variar até dentro do mesmo serviço, o usuário passa a confiar menos na informação de data
Para itens antigos, é melhor mostrar a data
- Expressões como “12 days ago” não combinam bem com as unidades de tempo em que as pessoas normalmente pensam
- “last week”, “last month” e “last year” também têm intervalos amplos, então a ambiguidade permanece
- Para itens mais antigos do que ontem, exibir uma data específica em vez de uma expressão relativa é mais fácil de ler e de confiar
3 comentários
O próprio GitHub e o YouTube fazem isso, e eu realmente odeio esse jeito de mostrar como “há alguns meses”, “há alguns anos”. Como também foi dito nos comentários do HN abaixo, “há 1 ano” às vezes na verdade quer dizer 1 ano e meio, então fica muito ambíguo.
Concordo bastante com isso. Do ponto de vista de quem está criando, mostrar como há XX dias evita ter que se preocupar com formatos de data diferentes entre países, como AA.MM.DD ou mmddaaaa, mas eu prefiro que a data seja exibida em vez de algo como há XX dias.
Comentários do Hacker News
Em especial, a exibição de tempo relativo fica imprecisa demais
No YouTube, “há 1 ano” pode ser qualquer coisa de 365 a 729 dias atrás
Para saber qual de dois vídeos exibidos como “há 1 ano” é mais recente, é preciso abrir o vídeo de fato e ir até a descrição para ver a data
Não quero fazer cálculo de datas de cabeça; basta mostrar um timestamp exato
Em vez de descartar uma grande faixa de informação com algo como “há 1 ano”, deveriam mostrar a hora real
No YouTube, “há 1 ano” pode significar 365 a 729 dias atrás, mas em alguns sites significa 183 a 548 dias atrás, arredondando para o ano mais próximo; em outros, arredonda-se por mês até 11 meses e então 350 a 548 dias atrás vira “há 1 ano”
Em outro lugar, com um critério como “dentro do último ano-calendário”, pode ir de 1 a 365 dias atrás até 364 a 729 dias atrás
Mesmo que um vídeo publicado em 14 de outubro de 2021 já tenha 2 anos, se ele foi enviado mais tarde naquele dia, ainda pode ser exibido como há 1 ano
Por exemplo, mostrar até 120 segundos atrás, até 120 minutos atrás, até 48 horas atrás, até cerca de 61 dias atrás e, depois disso, até 24 meses atrás
Datas relativas em listas costumam ser toleráveis, mas o problema de não serem atualizadas é muito mais irritante, e limitar apenas até “ontem” não resolve
Quero recomendar isso com ainda mais força
Felizmente, muitas vezes o timestamp aparece em um tooltip
Por exemplo, ao ver a versão de um pacote npm, aparece algo como “version 5.3.27 was released ‘about a year ago’”; dá vontade de perguntar se a pessoa estava em sã consciência
Estou tentando entender a ordem de lançamento de pacotes antigos para montar uma combinação fixa de pacotes compatíveis, mas 20 pacotes consecutivos aparecem todos como “há cerca de 1 ano”, então preciso abrir o tooltip de cada um para confirmar qual é a versão mais recente
Esse tipo de design passou do limite, e parece coisa do mesmo tipo de gente que cria ORMs que mapeiam nomes de tabelas irregulares no singular e no plural
Não sei por que eu não sabia disso, e é bem útil
O surpreendente é que essas pessoas não só ainda estão empregadas, como essa abordagem idiota se espalhou everywhere, do npm ao GitHub e ao CircleCI
Indo além, eu gostaria de eliminar completamente esses timestamps relativos arredondados
O app Mail do iOS é especialmente irritante
Ao abrir, ele mostra “atualizado agora há pouco”, mas, ao puxar para atualizar, aparece de repente um e-mail não lido recebido 2 horas antes
Bastaria mostrar a hora exata em que foi atualizado
Se você não vê em menos de uma hora, eles ficam imprecisos na hora, e só aparece se foi “há 1 hora” ou “há 2 horas”
Pode ser essencial saber exatamente quando uma notificação chegou, mas não há absolutamente nenhum jeito de verificar
É só mostrar a hora; eu sei ler horas
Se for hoje, mostra só a hora; caso contrário, mostra a data e a hora completas
Ao usar tempos absolutos, o navegador pode exibir no formato preferido pelo usuário
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ti...
Web designers querem que o site tenha uma aparência específica até o nível do pixel, e o controle de exibição do lado do cliente atrapalha isso
Ainda é possível fazer, mas os sites não serão projetados pensando nesse uso nem ajudarão ativamente nisso
No exemplo, a saída no iOS/Safari parece como se a tag não existisse
O que é especialmente inconveniente em datas vagas é quando o dia da semana é a informação mais importante
Por exemplo, ao ver o histórico do GitLab, é muito mais útil saber se algo foi mesclado na sexta-feira do que “semana passada” ou “2 dias atrás”
Em históricos de chat, se estiver perto da virada do mês, pode ser importante saber se a conversa foi antes ou depois do início do mês
Mesmo nos outros casos, pessoalmente prefiro a data exata a saber se foi há 4 semanas ou há 2 meses, e fornecer a data exata não reduz a informação
É difícil imaginar uma situação em que uma data vaga seja mais útil do que uma data exata
No GitLab, é possível alterar uma configuração para usar horários absolutos em vez de tempos relativos
Ex.: October 14, 2023 11:51AM
https://docs.gitlab.com/ee/user/profile/preferences.html#sho...
Recomendo muito aplicar algo assim em softwares baseados em navegador que você usa com frequência
Existe uma aplicação que busca informações em outro banco de dados, reformata e mostra ao usuário; como a atualização é cara e demorada, o usuário precisa executá-la manualmente quando necessário
Nesse caso, o horário exato da última atualização não importa muito; o importante é quão antigos estão os dados, ou seja, qual a chance de estarem divergentes da origem
Algumas informações precisam ser atualizadas depois de apenas algumas horas, mas outras podem estar há mais de 4 ou 5 dias sem problema, sem necessidade de fazer uma atualização que leva até 10 minutos
Para esse objetivo, mostrar a idade aproximada é mais útil do que mostrar o horário da última atualização, e o usuário não precisa calcular comparando com o horário atual
Ainda assim, é um caso raro, e na maioria das vezes datas relativas vagas são menos úteis
Algo como “termina cerca de 4–5 horas depois deste comentário” ou “foi corrigido e a próxima execução começa cerca de 15 horas depois deste comentário”
Entre os apps que uso e que mostram timestamps de forma errada, o pior é o gitg
Basta ver este screenshot
https://ubunlog.com/wp-content/uploads/2018/06/git-gui-gitg....
Vários commits aparecem como “3 dias atrás”, o que é só um pouco melhor do que não ter informação nenhuma
Não dá para saber se foi de manhã ou à tarde, se ficaram concentrados em uma hora ou espalhados ao longo do dia
Quando não consigo registrar o tempo de trabalho de um cliente e preciso estimá-lo uma semana depois, esse tipo de informação é importante, então preciso clicar em cada commit e conferir o timestamp do outro lado da tela
Além de mostrar “alguns dias atrás”, ele tenta colocar no topo os itens que considera importantes
Então aparecem duas listas parcialmente duplicadas misturadas, duplicando o horror
https://alesnosek.com/blog/2017/01/02/git-getting-the-timing...
Basta mostrar os dois
“1 hora atrás (15:47)”
“semana passada (MON 12 SEP 9:20)”
“2 anos atrás (WED 14 APR 2021 11:47)”
O formato da data fica a gosto
Quem quiser ver mais detalhes pode passar o mouse sobre a data relativa
Alguns anos depois, entrevistas com usuários mostraram que só um sublinhado estilo hyperlink não faz o usuário pensar “devo passar o mouse aqui”, então desfizemos boa parte disso
Agora que emojis e telas de alta resolução são comuns, fico curioso se dar uma dica de tooltip com um ponto de interrogação discreto ou uma imagem de lupa seria suficiente para usuários mais velhos ou menos experientes
Também é preciso incluir o ano
Já aconteceu vezes demais de um fórum na web mostrar a data de um comentário só como “5 Jul”, e só depois eu perceber que aquele comentário era de anos atrás
Hoje já não confio mais em datas sem ano; se o ano não aparece de cara, dou um jeito de encontrá-lo
Frequento algumas vezes por semana um fórum que existe há 20–30 anos, e as datas aparecem como 08/11/02, 09/03/04, o que é muito confuso
“1 ano atrás” pode não ser preciso o suficiente, mas “11 meses atrás” geralmente é
Ao implementar uma função desse tipo, costumo evitar o número 1
Por exemplo, mostrar “6 dias atrás” em vez de “1 semana atrás”
Se for arquivado em lugares como Google ou web.archive.org, a menos que o rótulo seja calculado no lado do cliente, o tempo relativo pode acabar sendo baseado na data de indexação
Em arquivos, é bem provável que o JavaScript também não funcione corretamente
Para exibir datas de forma mais acessível, também vale considerar usar a tag
timecom o atributodatetimehttps://developer.mozilla.org/en-US/docs/Web/HTML/Element/ti...
Por enquanto, nos navegadores ela não é muito diferente de uma tag
span, mas não há mal em tornar uma página web compatível com o futuro