tooliv

Chuyển đổi Timestamp

Chuyển Unix timestamp thành ngày tháng và ngược lại

Chuyển đổi Timestamp

Tại sao thời gian Unix bắt đầu từ 1970?

Unix được phát triển vào năm 1969-1970, các lập trình viên chọn ngày 1/1/1970 làm điểm gốc vì tính tiện lợi. Đây là giá trị dễ xử lý trên máy tính thời đó.

Timestamp Unix âm nghĩa là gì?

Biểu diễn ngày trước 1/1/1970. Ví dụ -86400 tương ứng ngày 31/12/1969. JavaScript cũng xử lý đúng các timestamp âm.

Cách lấy timestamp trong JavaScript?

Dùng Date.now() để lấy timestamp mili giây, hoặc Math.floor(Date.now()/1000) để lấy giây. new Date().getTime() cũng trả về giá trị tương tự Date.now().

Unix Timestamp là gì?

Unix timestamp là cách máy tính lưu trữ thời gian một cách phổ quát — số giây (hoặc mili giây) trôi qua từ ngày 1/1/1970 UTC (Unix epoch), biểu diễn bằng một số nguyên đơn giản. Hệ điều hành, cơ sở dữ liệu và API đều dùng chuẩn này để xử lý ngày giờ. Vì không phụ thuộc múi giờ, nó đặc biệt phù hợp cho hệ thống quốc tế.

Sự khác biệt giữa giây và mili giây

10 chữ số là giây (ví dụ: 1700000000), 13 chữ số là mili giây (ví dụ: 1700000000000). Date.now() trong JavaScript trả về mili giây, còn các lệnh gọi hệ thống Unix/Linux thường dùng giây. Bạn có thể nhận biết đơn vị qua số lượng chữ số.

Tại sao timestamp tốt hơn chuỗi ngày

Timestamp là số nguyên thuần túy, dễ so sánh, sắp xếp và tính hiệu số. Chuỗi ngày tháng như YYYY-MM-DD dễ gây nhầm lẫn về định dạng và múi giờ, trong khi timestamp luôn rõ ràng, chuẩn UTC. Hiệu suất lưu trữ cao và thuận lợi cho việc tối ưu index trong cơ sở dữ liệu.

Múi giờ và UTC

Unix timestamp luôn theo chuẩn UTC (Giờ Phối hợp Quốc tế). Việt Nam ở múi UTC+7, nên khi hiển thị cần cộng thêm 7 giờ. Thực hành tốt nhất là lưu theo UTC và chỉ chuyển đổi sang giờ địa phương khi hiển thị cho người dùng.

Vấn đề Y2K38

Unix timestamp lưu dưới dạng số nguyên 32-bit có dấu sẽ bị tràn vào ngày 19/1/2038 lúc 03:14:07 UTC, được gọi là vấn đề Y2K38. Hệ thống 64-bit không bị ảnh hưởng, nhưng các hệ thống nhúng và legacy cũ vẫn có nguy cơ và cần được lên kế hoạch nâng cấp.

Câu hỏi thường gặp

Tại sao thời gian Unix bắt đầu từ 1970?

Unix được phát triển vào năm 1969-1970, các lập trình viên chọn ngày 1/1/1970 làm điểm gốc vì tính tiện lợi. Đây là giá trị dễ xử lý trên máy tính thời đó.

Timestamp Unix âm nghĩa là gì?

Biểu diễn ngày trước 1/1/1970. Ví dụ -86400 tương ứng ngày 31/12/1969. JavaScript cũng xử lý đúng các timestamp âm.

Cách lấy timestamp trong JavaScript?

Dùng Date.now() để lấy timestamp mili giây, hoặc Math.floor(Date.now()/1000) để lấy giây. new Date().getTime() cũng trả về giá trị tương tự Date.now().

Công cụ liên quan