strftime.js ( strftime github ) là một trong những thư viện định dạng thời gian tốt nhất. Nó cực kỳ nhẹ - 30KB - và hiệu quả. Sử dụng nó, bạn có thể chuyển đổi giây thành thời gian dễ dàng trong một dòng mã, chủ yếu dựa vào lớp Ngày gốc.
Khi tạo Ngày mới, mỗi đối số tùy chọn có vị trí như sau:
new Date(year, month, day, hours, minutes, seconds, milliseconds);
Vì vậy, nếu bạn khởi tạo một Ngày mới với tất cả các đối số là 0 cho đến giây, bạn sẽ nhận được:
var seconds = 150;
var date = new Date(0,0,0,0,0,seconds);
=> Sun Dec 31 1899 00:02:30 GMT-0500 (EST)
Bạn có thể thấy 150 giây là 2 phút và 30 giây, như đã thấy trong ngày tạo. Sau đó, sử dụng định dạng strftime ("% M:% S" cho "MM: SS"), nó sẽ xuất ra chuỗi phút của bạn.
var mm_ss_str = strftime("%M:%S", date);
=> "02:30"
Trong một dòng, nó sẽ trông như:
var mm_ss_str = strftime('%M:%S', new Date(0,0,0,0,0,seconds));
=> "02:30"
Thêm vào đó, điều này sẽ cho phép bạn hỗ trợ hoán đổi cho nhau HH: MM: SS và MM: SS dựa trên số giây. Ví dụ:
# Less than an Hour (seconds < 3600)
var seconds = 2435;
strftime((seconds >= 3600 ? '%H:%M:%S' : '%M:%S'), new Date(0,0,0,0,0,seconds));
=> "40:35"
# More than an Hour (seconds >= 3600)
var seconds = 10050;
strftime((seconds >= 3600 ? '%H:%M:%S' : '%M:%S'), new Date(0,0,0,0,0,seconds));
=> "02:47:30"
Và tất nhiên, bạn có thể chỉ cần vượt qua bất kỳ định dạng nào bạn muốn thoát ra nếu bạn muốn chuỗi thời gian ít nhiều có ngữ nghĩa.
var format = 'Honey, you said you\'d be read in %S seconds %M minutes ago!';
strftime(format, new Date(0,0,0,0,0,1210));
=> "Honey, you said you'd be read in 10 seconds 20 minutes ago!"
Hi vọng điêu nay co ich.