No portal corporativo de um de nossos clientes, alguns usuários em seu perfil não exibiam a data de nascimento corretamente - em vez do dia obrigatório, era mostrado o anterior. Nossos desenvolvedores descobriram que o motivo desse erro estava escondido nas profundezas da história.
Primeiro, a equipe verificou o back-end e certificou-se de que os dados estavam chegando corretamente. Analisamos os logs de interação dos navegadores dos usuários com o site - descobriu-se que o bug é reproduzido apenas no Safari em aparelhos Apple. E quando os usuários dizem que a data de nascimento é exibida corretamente, eles entram no portal de outro dispositivo e navegador, por exemplo, do Google Chrome em seu computador.
Além disso, a equipe começou a iterar em diferentes períodos, encurtando gradualmente os intervalos de tempo para entender a qual data nosso bug está associado. Descobriu-se que o problema gira em torno de junho de 1930 - é aqui que ocorre a interrupção do tempo, e apenas no Safari. Eles começaram a descobrir o que era especial em 21 de junho de 1930, e desenterraram que naquele dia na União Soviética, a hora foi adiada uma hora. O Google Chrome lida com essa situação corretamente, mas o Safari não.
Outro recurso no formato de uma variável que transmite neste momento. O formato conta o número de milissegundos a partir do momento zero - o carimbo é em 1º de janeiro de 1970. O Google Chrome processa a data de 21 de junho da seguinte forma: das 23h59 à 1h custa 1.000 milissegundos (que é 1 segundo), ou seja, dessa vez "desaparece". Já o Safari acredita que esse tempo está aí, pois não sabe que o relógio foi traduzido na URSS.
A equipe relatou esse bug ao Apple Feedback Assistant e está aguardando uma resposta. E o portal receberá seu próprio patch na próxima versão.
P.S. . , . , , «4 ». , , .
, . – 29 . 29 . , .