Unix Timestamp là gì?
Unix timestamp (còn gọi là epoch time hay POSIX time) là số giây đã trôi qua kể từ thời điểm 00:00:00 UTC ngày 1 tháng 1 năm 1970, không tính giây nhuận. Đây là cách phổ biến nhất để máy tính lưu trữ một thời điểm, hoàn toàn độc lập với múi giờ và định dạng lịch. Công cụ này nhận vào một timestamp ở đơn vị mili giây (đơn vị mà hầu hết các ngôn ngữ lập trình trả về, ví dụ Date.now() trong JavaScript) rồi chuyển thành giây, phút và số ngày kể từ mốc epoch.
Cách sử dụng
Nhập giá trị Unix time tính bằng mili giây vào ô và nhấn xác nhận. Công cụ sẽ chia cho 1000 rồi làm tròn xuống để cho ra số giây Unix nguyên — định dạng thông dụng nhất mà cơ sở dữ liệu, API và lệnh date +%s trên Linux đang dùng. Bảng kết quả cũng hiển thị lại giá trị mili giây ban đầu, cùng số phút và số ngày đã trôi qua để bạn dễ kiểm tra nhanh.
Giải thích công thức
Phép chuyển đổi cốt lõi là $$\text{Seconds} = \left\lfloor \frac{\text{Time (ms)}}{1000} \right\rfloor$$ Chia cho 1000 để đổi mili giây thành giây, còn hàm floor (làm tròn xuống) bỏ đi phần thập phân để bạn nhận được timestamp tính theo giây nguyên. Số phút dùng công thức \(\left\lfloor \frac{M}{60000} \right\rfloor\) và số ngày dùng \(\left\lfloor \frac{M}{86400000} \right\rfloor\), vì một ngày có 86.400 giây = 86.400.000 mili giây.
Ví dụ minh họa
Giả sử \(M = 1{.}700{.}000{.}000{.}000\). Khi đó $$\text{Seconds} = \left\lfloor \frac{1{.}700{.}000{.}000{.}000}{1000} \right\rfloor = 1{.}700{.}000{.}000 \text{ giây}$$ tương ứng với ngày 14 tháng 11 năm 2023. Số phút kể từ epoch = \(\left\lfloor \frac{1{.}700{.}000{.}000{.}000}{60000} \right\rfloor = 28{.}333{.}333\), và số ngày = \(\left\lfloor \frac{1{.}700{.}000{.}000{.}000}{86{.}400{.}000} \right\rfloor = 19{.}675\).
Câu hỏi thường gặp
Vì sao có nơi dùng giây mà không phải mili giây? Nhiều hệ thống cũ và rất nhiều API (Unix, Postgres, trường exp trong JWT) lưu theo giây, trong khi trình duyệt và Java dùng mili giây. Việc chuyển qua lại giữa hai đơn vị chỉ đơn giản là nhân hoặc chia cho 1000.
Còn giây nhuận thì sao? Unix time bỏ qua giây nhuận, nên giá trị này là một thước đo tuyến tính gọn gàng — rất tiện cho việc tính toán nhưng không trùng khớp hoàn toàn với UTC thiên văn.
Liệu nó có gặp sự cố vào năm 2038? Những hệ thống lưu số giây dưới dạng số nguyên 32-bit có dấu sẽ bị tràn số vào ngày 19 tháng 1 năm 2038. Các hệ thống 64-bit hiện đại không bị ảnh hưởng.