UNPKG

1.45 kBJavaScriptView Raw
1// 把相差的毫秒数转成日、时、分、秒
2Number.prototype.toDuration = function (start) {
3 var milli = this;
4 // 如果从秒开始
5 if (start === 'second') {
6 return {
7 seconds: milli / 1000
8 };
9 }
10
11 var secondMilli = 1000; // 一分钟的毫秒数
12 var minuteMilli = 60 * secondMilli; // 一分钟的毫秒数
13 var hourMilli = 60 * minuteMilli; // 一小时的毫秒数
14 var dayMilli = 24 * hourMilli; // 一天的毫秒数
15 // 计算出相差天数
16 var daysDiff = Math.floor(milli / dayMilli);
17 // 计算出剩余小时数
18 var dayMilliRemainder = milli % dayMilli;
19 var hoursDiff = Math.floor(dayMilliRemainder / hourMilli);
20 // 计算剩余分钟数
21 var minuteMilliRemainder = dayMilliRemainder % hourMilli;
22 var minutesDiff = Math.floor(minuteMilliRemainder / minuteMilli);
23 // 计算剩余秒数
24 var secondMilliRemainder = minuteMilliRemainder % minuteMilli;
25 var secondsDiff = Math.round(secondMilliRemainder / secondMilli);
26
27 // 如果从时开始
28 if (start === 'hour') {
29 return {
30 hours: hoursDiff + daysDiff * 24,
31 minutes: minutesDiff,
32 seconds: secondsDiff
33 };
34 }
35 // 如果从分开始
36 if (start === 'minute') {
37 return {
38 minutes: minutesDiff + hoursDiff * 60 + daysDiff * 24 * 60,
39 seconds: secondsDiff
40 };
41 }
42 // 从天开始
43 return {
44 days: daysDiff,
45 hours: hoursDiff,
46 minutes: minutesDiff,
47 seconds: secondsDiff
48 };
49};
\No newline at end of file