Hỗ trợ kỹ thuật

Unix Timestamp ra ngày: giây, mili giây và UTC

Đổi Unix timestamp thành ngày. Phân biệt giây với mili giây, UTC với giờ địa phương, ISO 8601, và cách đổi ngày ngược lại thành epoch.

Trả lời nhanh

Unix timestamp biểu diễn thời gian so với Unix epoch: 1970-01-01 00:00:00 UTC. Thường lưu bằng giây kể từ epoch, hoặc mili giây kể từ epoch.

Muốn đổi đúng, trước hết phải biết đơn vị. 1720000000 giây là 2024-07-03 09:46:40 UTC. 1720000000000 mili giây là cùng một thời điểm.

Timestamp chỉ một thời điểm. UTC, giờ địa phương hay vùng IANA chỉ đổi cách hiện thời điểm đó.

Đây là hướng dẫn chuyển đổi: timestamp ra ngày, ngày ra timestamp, UTC với địa phương, và ISO 8601. Nếu giá trị đột ngột thành 1970, thường là lệch giây/mili giây—xem Unix Timestamp giây và mili giây: vì sao ngày hiện 1970.

Unix timestamp là gì?

Unix timestamp, Unix time và epoch time thường nghĩa là thời gian đã trôi kể từ 1970-01-01 00:00:00 UTC. Bản thân con số không phải chuỗi ngày kèm nhãn múi giờ. Cùng một thời điểm có thể hiện giờ khác nhau ở UTC, New York, Tokyo hay Seoul. Unix timestamp không phải lúc nào cũng là giây—mili giây rất phổ biến trên thực tế.

Unix epoch là gì?

Unix epoch là 1970-01-01 00:00:00 UTC. Timestamp 0 là đúng thời điểm đó. Timestamp dương nằm sau epoch. Một số hệ thống cho phép timestamp âm cho thời điểm trước epoch, nhưng hỗ trợ ngôn ngữ và khoảng ngày không đồng nhất.

Timestamp của tôi là giây hay mili giây?

1720000000 là giây; 1720000000000 là mili giây; chúng là cùng một thời điểm. Gợi ý thực tế: khoảng 10 chữ số thường là giây, khoảng 13 chữ số thường là mili giây. Số chữ số chỉ là heuristic. Ngày quá khứ hoặc tương lai, đơn vị khác, hoặc epoch tùy chỉnh có thể trông khác. Chuyển đổi ngày giờ đổi được bằng giây, mili giây hoặc tự động (≤10 chữ số là giây, ≥13 là mili giây)—hãy chọn đơn vị khi bạn biết.

Sai đơn vị thì ngày sai vì sao?

JavaScript Date kỳ vọng mili giây. Đưa 1720000000 như thể mili giây cho ra 1970-01-20 21:46:40 UTC. Coi mili giây là giây, hoặc ngược lại, sẽ ra một ngày hoàn toàn khác. Lối xử lý 1970 xem Unix Timestamp giây và mili giây: vì sao ngày hiện 1970.

new Date(1720000000);
// 1970-01-20T21:46:40.000Z

Cách đổi Unix timestamp tính bằng giây

Nhân giây với 1000 để ra mili giây. JavaScript Date dựa trên mili giây, nên dùng new Date(timestamp * 1000).

const timestamp = 1720000000;
const date = new Date(timestamp * 1000);
date.toISOString();
// 2024-07-03T09:46:40.000Z

Cách đổi timestamp mili giây

Đưa mili giây thẳng vào Date. Đừng nhân thêm 1000 với timestamp đã là mili giây.

const timestamp = 1720000000000;
const date = new Date(timestamp);
date.toISOString();
// 2024-07-03T09:46:40.000Z

Cùng timestamp sao lại hiện giờ khác?

Unix timestamp là một thời điểm. Hiện nó theo UTC, giờ địa phương hoặc vùng IANA đã chọn sẽ đổi mặt đồng hồ. Với 1720000000000, UTC là 2024-07-03 09:46:40. America/New_York ngày đó là 2024-07-03 05:46:40 (EDT). Asia/Seoul là 2024-07-03 18:46:40 (UTC+9). Các giá trị New York và Seoul lấy từ Intl, không phải khẩu hiệu lệch cố định.

Unix timestamp có chứa múi giờ không?

Không. Nó không lưu America/New_York hay Asia/Seoul. Timestamp chỉ một thời điểm. Múi giờ được áp khi bạn định dạng thời điểm đó thành ngày giờ người đọc được. Epoch định nghĩa tương đối với UTC; bản thân con số không phải “trường múi giờ UTC”.

Unix timestamp và ISO 8601

1720000000 và 2024-07-03T09:46:40Z có thể cùng một thời điểm. Unix là giá trị số đo thời gian đã trôi. ISO 8601 là chuỗi ngày-giờ dễ đọc, có thể kết thúc bằng Z (UTC) hoặc offset số. Z nghĩa là UTC; đôi khi gọi Zulu. Chúng không cùng một định dạng.

Lấy Unix timestamp hiện tại thế nào?

Trong JavaScript, Date.now() là mili giây. Math.floor(Date.now() / 1000) là giây. Đừng ghi cứng “bây giờ” trong bài; nó luôn chạy.

Date.now();
Math.floor(Date.now() / 1000);

Có đổi ngày ngược lại thành Unix timestamp được không?

Được. Từ chuỗi ISO UTC tường minh, getTime() trả mili giây; chia 1000 rồi floor ra giây.

const date = new Date("2024-07-03T09:46:40Z");
date.getTime();
// 1720000000000
Math.floor(date.getTime() / 1000);
// 1720000000

Cẩn thận với định dạng ngày mơ hồ

03/07/2024 có thể là 7 tháng 3 hoặc 3 tháng 7 tùy locale. Nên dùng ngày giờ kiểu ISO kèm múi giờ hoặc offset. Chuyển đổi ngày giờ từ chối ngày số mơ hồ như 01/02/2026 và yêu cầu bộ chọn ngày hoặc giá trị kiểu ISO.

Còn giờ mùa hè thì sao?

Unix timestamp không lưu cờ DST. Hiển thị địa phương áp quy tắc của vùng. America/New_York dùng offset khác nhau mùa đông và mùa hè, nên “New York là UTC-5” không đúng quanh năm.

Unix timestamp có tính giây nhuận không?

POSIX/Unix time thông thường không đếm giây nhuận như thêm SI giây trên thang liên tục. Nền tảng có thể khác nhau. Khi đổi hàng ngày, có thể bỏ qua chi tiết này.

Nhầm lẫn thường gặp khi đổi Unix timestamp

Những lẫn lộn sau cho ra ngày sai hoặc mặt đồng hồ sai:

Giây bị coi là mili giây
Giá trị giây hiện đại khi đó rơi gần 1970 trong JavaScript Date.

Mili giây bị coi là giây
Ngày nhảy xa về tương lai.

Coi 10 hay 13 chữ số như luật
Số chữ số là gợi ý, không phải bảo đảm.

Nhầm UTC với giờ địa phương
Thời điểm giống nhau; đồng hồ hiện ra có thể khác.

Cho rằng múi giờ nằm trong con số
Tên IANA được áp lúc hiển thị, không lưu trong timestamp.

Ngày mơ hồ, khẩu hiệu DST, hoặc ×1000 thừa
Dùng đầu vào kiểu ISO. Đừng nhân thêm timestamp mili giây.

Ví dụ UTC đã kiểm

Các giờ UTC sau được tính, không phải đoán:

Đầu vào Đơn vị UTC
0 giây 1970-01-01 00:00:00
1720000000 giây 2024-07-03 09:46:40
1720000000000 mili giây 2024-07-03 09:46:40
1720000000 mili giây 1970-01-20 21:46:40

Hướng dẫn quyết định chuyển đổi gọn

Nguồn ghi đơn vị thì dùng đơn vị đó. Không có thì số chữ số là gợi ý—rồi kiểm ngày có hợp lý không. Đổi giây sang mili giây khi API cần ms. Chọn UTC, địa phương hoặc vùng IANA để hiện. ISO 8601 tiện cho lưu trữ và trao đổi.

  • Có Unix timestamp
  • Đã ghi đơn vị? Dùng; không thì xem độ lớn
  • Giây? ×1000 nếu API cần mili giây
  • Mili giây? Dùng trực tiếp trong API theo ms
  • Hiện UTC, địa phương hoặc vùng IANA
  • Cần chuỗi? ISO 8601 có thể phù hợp
Con số là một thời điểm. Định dạng chọn mặt đồng hồ.
Timestamp là thời điểm, không phải định dạng hiển thị

Timestamp chỉ một điểm trên trục thời gian. UTC, giờ địa phương hay múi giờ chỉ quyết định cách hiện thời điểm đó cho người xem.

Đổi Unix timestamp ngay trong trình duyệt

NEXNARA Chuyển đổi ngày giờ đổi giây và mili giây Unix, hiện UTC, giờ địa phương và ISO 8601, đồng thời đổi giữa các múi IANA.

Chế độ Unix hỗ trợ giây, mili giây, đơn vị tự động, thời điểm hiện tại và ngày-sang-timestamp. Chế độ múi giờ tìm tên IANA, dùng vùng trình duyệt, và áp offset Intl có tính DST. Chế độ định dạng có đầu ra đọc theo locale, hiện 12/24 giờ, và chặn ngày mơ hồ. Hiệu số ngày là chế độ riêng.

Chuyển đổi dùng API Date và Intl của trình duyệt. Giá trị ngoài phạm vi Date bị từ chối. Đơn vị tự động không đoán giá trị 11–12 chữ số; hãy chọn giây hoặc mili giây.

Việc đổi ngày và timestamp diễn ra trong trình duyệt. Đầu vào không gửi tới máy chủ NEXNARA để chuyển đổi. Quảng cáo và tính năng khác của trang vẫn dùng mạng.

Dán timestamp vào Chuyển đổi ngày giờ và so UTC, giờ địa phương cùng ISO 8601 trước khi chọn đơn vị.

FAQ

Đổi Unix timestamp thành ngày thế nào?

Biết đơn vị. Giây trong JavaScript dùng new Date(n * 1000). Mili giây dùng new Date(n). Rồi định dạng UTC, địa phương hoặc một vùng.

Unix timestamp là giây hay mili giây?

Cả hai đều có. Khoảng 10 chữ số thường là giây và khoảng 13 thường là mili giây, nhưng đó là heuristic chứ không phải quy tắc.

Vì sao timestamp của tôi hiện 1970?

Thường là giá trị giây bị đọc thành mili giây. Xem Unix Timestamp giây và mili giây: vì sao ngày hiện 1970.

Unix timestamp có luôn là UTC không?

Epoch được định nghĩa tương đối với UTC, và con số chỉ một thời điểm. Múi giờ hiển thị là chuyện khác. Nó không phải “trường múi giờ UTC” đã lưu.

Unix timestamp có chứa múi giờ không?

Không. Nó không mang định danh IANA. Múi giờ được áp khi bạn định dạng thời điểm.

Đổi ngày thành Unix timestamp thế nào?

Từ chuỗi ISO UTC, date.getTime() là mili giây; Math.floor(date.getTime() / 1000) là giây.