UNPKG

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