KamoCRM

Un timbro che dice quale giorno, una volta che il giorno è in dubbio

Fixkamo-internal
Spegnimento
30 agosto 2026 alle ore 18:57 UTC
Autore
Kamo
Impegno
9e2e78d

Segnalato da un membro: le chat passate non possono essere identificate o verificate da data in cui sono stati inviati o ricevuti — solo un tempo è presente. La loro storia torna ad aprile, così tutti tranne i nove messaggi che hanno inviato oggi leggere come un nudo "3:33 AM" con nulla sullo schermo per risolverlo contro; il messaggio elenco non estrae nemmeno il separatore di giorno, quindi il timbro è l'unica cosa che potrebbe portare la data e non l'ha mai fatto. L'istante non è mai stato il problema — `ts` è epoca millis fuori `dateCreated` ed è stato corretto dal sistema di parsing LocalDateTime. Ogni francobollo era semplicemente reso con `fmt.time()`, che formatta un tempo di giorno e niente altrimenti, se il messaggio ha cinque minuti o quattro mesi. `formatDayAwareTimeInZone` è la regola che il membro ha chiesto: il tempo da solo mentre l'istante è ancora oggi, `formatDateTime InZone` davanti a esso una volta che non lo è. Oggi è un giorno CALENDAR nella zona del membro piuttosto che 24 ore esatti — alle 00:10 un messaggio da 23:50 è venti minuti vecchio e appartiene a ieri, e questo è proprio il messaggio il cui giorno nessuno può alimentazione dalla memoria. Legge l'orologio per chiamata piuttosto che catturarlo, quindi una conversazione lasciata aperta attraverso le date di mezzanotte i messaggi di ieri sera sul suo prossima resa. Nessun nuovo dizionario chiavi: la data viene da Intl in locale del membro, quindi niente qui ha bisogno di 21 traduzioni. Applicato ai quattro francobolli che avevano sbagliato: l'intestazione del messaggio, il "edited" tooltip, il per-member leggere ricevute, e la bolla di chat sociale. La scheda SMS aveva una versione a mano della stessa idea che ha chiesto `getFullYear()` — il calendario del browser, non quello del membro — e ha risposto con un giorno di settimana nudo, che smette di identificare qualcosa dopo sette giorni; esso ora passa attraverso lo stesso aiutante. I formatori Intl del serverTime sono memoizzati sul passato. Costruire uno misure ~180us contro ~3us da usare, e un timbro di day-aware chiede due giorni chiavi per riga, quindi aprire una storia di 200 messaggi avrebbe speso ~70ms la costruzione lo scarta immediatamente. Sono immutabili, così uno per (locale, zona, opzioni) è byte-identico ad una per chiamata — la stessa argomento, e la stessa misura, come l'uso della cacheFormatters già Continua.

Tutte le modifiche

Come quello che vedi la spedizione?

Tutto questo arriva nel vostro spazio di lavoro da solo. Iniziare sul piano gratuito e leggere di nuovo questa pagina in un mese.

Inizia gratis per sempreVisualizza il prezzo