Công cụ đổi mili giây sang HH:MM:SS là gì?
Công cụ này giúp bạn chuyển một khoảng thời gian tính bằng mili giây sang định dạng đồng hồ quen thuộc gồm giờ, phút và giây (HH:MM:SS), cùng với phần mili giây còn dư. Mili giây được dùng rất phổ biến trong lập trình, ghi log, đo hiệu năng (benchmark) và các ứng dụng bấm giờ/đồng hồ đếm, nơi thời gian trôi qua thường được lưu dưới dạng một số nguyên lớn duy nhất. Việc biến con số đó thành thời gian dễ đọc sẽ giúp bạn hiểu nhanh hơn rất nhiều.
Cách sử dụng
Bạn chỉ cần nhập tổng số mili giây cần chuyển đổi, công cụ sẽ trả về ngay thời gian tương ứng theo định dạng HH:MM:SS, kèm theo bảng phân tích thành giờ, phút, giây và phần mili giây còn lại. Ví dụ, kết quả bấm giờ 3.661.500 ms sẽ trở thành 01:01:01 và còn dư 500 ms.
Giải thích công thức
Phép chuyển đổi sử dụng phép chia lấy phần nguyên và phép chia lấy phần dư (modulo). Một giờ có 3.600.000 ms, một phút có 60.000 ms và một giây có 1.000 ms. Số giờ bằng tổng số mili giây chia cho 3.600.000 (lấy phần nguyên). Phần dư sau khi trừ đi số giờ nguyên được chia cho 60.000 để ra số phút. Phần còn lại chia cho 1.000 cho ra số giây, và phần dư cuối cùng chính là số mili giây còn lại.
$$\begin{gathered} \text{HH:MM:SS} \\[1.5em] \text{where}\quad \left\{ \begin{aligned} \text{HH} &= \left\lfloor \frac{\text{Milliseconds}}{3600000} \right\rfloor \\ \text{MM} &= \left\lfloor \frac{\text{Milliseconds} \bmod 3600000}{60000} \right\rfloor \\ \text{SS} &= \left\lfloor \frac{\text{Milliseconds} \bmod 60000}{1000} \right\rfloor \end{aligned} \right. \end{gathered}$$
Ví dụ minh họa
Lấy 3.661.500 ms. Số giờ = phần nguyên của \(\left\lfloor 3{.}661{.}500 / 3{.}600{.}000 \right\rfloor = 1\). Phần dư = 61.500 ms. Số phút = phần nguyên của \(\left\lfloor 61{.}500 / 60{.}000 \right\rfloor = 1\). Phần dư = 1.500 ms. Số giây = phần nguyên của \(\left\lfloor 1{.}500 / 1{.}000 \right\rfloor = 1\). Mili giây còn lại = \(1{.}500 \bmod 1{.}000 = 500\). Kết quả: 01:01:01 và 500 ms.
Câu hỏi thường gặp
Nếu giá trị vượt quá 24 giờ thì sao? Trường giờ sẽ tiếp tục đếm tăng lên (ví dụ 90.000.000 ms = 25:00:00); đây là một khoảng thời gian (duration) chứ không phải giờ trên đồng hồ, nên nó không quay lại về 0 sau mỗi 24 giờ.
Công cụ có hỗ trợ mili giây dạng thập phân không? Công cụ sẽ làm tròn xuống thành số mili giây nguyên trước khi chuyển đổi, nên phần lẻ nhỏ hơn một mili giây sẽ bị bỏ qua.
Một phút có bao nhiêu mili giây? Một phút có 60.000 mili giây và một giờ có 3.600.000 mili giây.