Znacznik czasu
Znacznik czasu to określona data i godzina „stemplowana” na cyfrowym rekordzie lub pliku. Choć najczęściej używa się tego słowa jako rzeczownika, „znacznik czasu” może być również czasownikiem. Na przykład: „Wpis na Twitterze został opatrzony znacznikiem czasu 8 stycznia 2021 roku o 10:44”.
Znaczniki czasu to standardowy sposób przechowywania dat i godzin w systemach komputerowych. Na przykład systemy operacyjne przypisują każdemu plikowi znacznik czasu utworzenia oraz modyfikacji. Aparaty cyfrowe przypisują znacznik czasu każdemu wykonanemu zdjęciu. Platformy mediów społecznościowych przechowują znacznik czasu przy każdym poście, tak jak w opisanym wyżej przykładzie z Twittera.
Choć znaczniki czasu są uniwersalne, nie istnieje uniwersalny format ich zapisu. Na przykład język programowania może używać jednej metody, a baza danych innej. Nawet systemy operacyjne mają różne sposoby przechowywania znaczników czasu. Na przykład Windows korzysta ze standardu ANSI i przechowuje znaczniki czasu jako liczbę sekund od 1 stycznia 1601 roku. System Unix przechowuje znaczniki czasu jako liczbę sekund, które upłynęły od północy 1 stycznia 1970 roku. Ponieważ istnieje kilka różnych formatów znaczników czasu, większość współczesnych języków programowania ma wbudowane funkcje konwersji znaczników czasu.
Przechowywanie znacznika czasu jako liczby całkowitej jest wydajne, ponieważ wymaga niewielkiej ilości miejsca. Jednak podczas wyświetlania liczbę trzeba przekonwertować na czytelny format czasu. MySQL ma typ danych TIMESTAMP, który wygodnie przechowuje znaczniki czasu w następującym formacie:
YYYY-MM-DD HH:MM:SS
MySQL przechowuje znaczniki czasu w formacie UTC, który jest oparty na czasie obowiązującym w Anglii. Dlatego 16 stycznia 2021 roku o 10:15:30 czasu centralnego USA zostałoby zapisane w bazie danych MySQL w następujący sposób:
2021-01-16 16:15:30
Po przekonwertowaniu na znacznik czasu w systemie Linux ta data i godzina byłyby reprezentowane jako:
1610813730
Znaczniki czasu mają również różną rozdzielczość, czyli dokładność. W niektórych przypadkach wystarczą sekundy, podczas gdy w innych wymagane są milisekundy, a nawet nanosekundy. Powyższy znacznik czasu systemu Linux miałby wartość 1610813730000 w milisekundach, co zapewnia rozdzielczość jednej tysięcznej sekundy. Operacje obliczeniowe mogą wymagać znaczników czasu o jeszcze większej rozdzielczości. PHP zawiera funkcję microtime(), która zwraca znacznik czasu w mikrosekundach, z rozdzielczością jednej milionowej sekundy.
Sprawdź swoją wiedzę