📅 Datum Javascriptu 📅

Úvod

Cítili jste se někdy naštvaní, když byste měli kódovat související s Datetime? Možná jste to ještě nezažili, ale až se tam dostanete, budete vděční, že si tento blog přečtete. Rozhodl jsem se napsat tento příspěvek, protože jsem naštvaný, když vidím formát DateTime. V tomto příspěvku na blogu se budu zabývat formátem časového razítka, datem Javascriptu a mými oblíbenými balíčky Datetime NPM.

Časové razítko ISO 8601 a Unix

Přál bych si vědět o těchto dvou hlavních formátech brzy, než budu pracovat ve své společnosti. Viděl jsem tyto formáty a byl jsem tak zmatený. Jaké jsou mezi těmito dvěma rozdíly?

// ISO 8601
2022-03-29T12:04:06.179Z 
2022-03-29T12:04:06.179+07:00

// Unix Timestamp
1648555411546

ISO 8601

U formátu ISO 8601 je matoucí poslední indikátor, kterým je z nebo +07:00 . z znamená Zuluský čas a Zuluský čas je stejný jako UTC (Universal Time Coordinated) nebo GMT+0 (Greenwich Mean Time Zone)

A co Unix Timestamp?

Unix Timestamp je vždy založen na UTC.

Jeden zajímavý fakt, který musíte vědět o Unix Timestamp je, že Unix Timestamp skončí 19. ledna 2038 ve 3:14 UTC .
Proč? Je to proto, že datový typ Unix Timestamp používá celé číslo se znaménkem, které má tradičně 32 bitů. Pokud vaše logické myšlení říká, že Unix Timestamp má počáteční čas, máte naprostou pravdu. Začalo to 1. ledna 1970 v 00:00:00 UTC. Pokud jste slyšeli o Unix Epoch Time, odkazuje to na čas začátku Unix Timestamp. Přečtěte si o definici epochy zde. Ještě jsem se ani nenarodil a doufám, že vidím, jak skončilo Unix Timestamp. Zanechte komentář, pokud vidíte, že je spuštěno časové razítko Unixu :P.

Chci se také podělit o tento převodník DateTime, který mi pomohl pro mou práci. https://www.timestamp-converter.com/

Datum Javascriptu

V této části se budu zabývat nejpopulárnějším Javascript Datem, které většina lidí používá.

Moje kousky kódu můžete vyzkoušet ve vývojářských nástrojích prohlížeče, abyste to mohli dokázat.

new Date()

Toto je konstruktor Date, takže vrátí objekt Date.


Date()
// "Thu Mar 31 2022 06:41:59 GMT-0400 (Eastern Daylight Time)"

Když však zavoláme funkci Date, vrátí řetězec, který je stejný jako new Date().toString()


Date.now()
// 1648723728520

Pokud se ptáte, jak můžeme vytvořit Unix Timestamp v Javascriptu, toto je odpověď.

new Date().toISOString()
// "2022-03-31T10:52:47.427Z"

Samozřejmě to ukážu. Toto je pro ISO ISO 8601. Nezapomeňte, že existuje Z v posledním znaku, což znamená čas Zulu. Proto je to UTC, nikoli naše časové pásmo (pokud se nenacházíte v pásmu UTC)

Knihovna balíčků data NPM

Ve své firmě jsem našel tři balíčky npm, což je nepříjemné. Podělím se o tři z nich a dám doporučení.

V rámci našich projektů používáme tři knihovny, kterými jsou moment Moment.js, Day.js a date-fns.

Tyto tři knihovny nám pomohou, pokud potřebujeme v našem kódu manipulovat s datem a časem. Při výběru mezi těmito třemi však mám několik úvah.

Moment.js je nyní starší kód. Uvádí to na svých webových stránkách zde.

Nyní je to mezi Day.js a date-fns. Našel jsem článek, který vysvětluje mezi Day.js a date-fns. Myslím, že vám to dá odpověď. https://how-to.dev/dayjs-vs-date-fns

Abych to shrnul, Podle Marcina Wosinka ve svém blogu výše, Pokud již používáte moment.js, můžete jej převést pomocí Day.js, protože většina API je stejná. Pokud jde o velikost, datum-fns je menší než Day.js. Pokud nechcete, můžete začít s date-fns. Stačí se zaměřit na jednu knihovnu Date, protože se nechcete učit všechny knihovny.

Závěr

Doufejme, že moje utrpení, jak číst formát časového razítka, by pro vás mohlo být užitečné. Pokud máte nějaké dotazy, zanechte komentář a sdílejte knihovnu DateTime, kterou máte rádi.
Příjemné čtení 📚!