All files / angle-util/src DateUtil.js

0% Statements 0/79
0% Branches 0/84
0% Functions 0/5
0% Lines 0/79

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154                                                                                                                                                                                                                                                                                                                   
export default {
    getReadableTimeBySeconds(time, params) {
        if (time) {
            let secondsShow = 'yes';
            let secondsDynamicLimit = 60;
            if (params && params.seconds === 'no') {
                secondsShow = 'no';
            }
            else if (params && params.seconds === 'dynamic') {
                secondsShow = 'dynamic';
                params.secondsDynamicLimit ? secondsDynamicLimit = params.secondsDynamicLimit : secondsDynamicLimit;
            }
            let allSeconds = time;
            let allMinutes = Math.floor(allSeconds / 60);
            let seconds = allSeconds % 60;
            let allHours = Math.floor(allMinutes / 60);
            let minutes = allMinutes % 60;
            let allDays = Math.floor(allHours / 24);
            let hours = allHours % 24;
            let result = '';
            let hourKey = false;
            let minuteKey = false;
            if (allDays) {
                result += allDays + '天';
                hourKey = true;
            }
            if (hours || hourKey) {
                result += hours + '小时';
                minuteKey = true;
            }
            if (minutes || minuteKey) {
                result += minutes + '分钟';
            }
            if (secondsShow === 'yes') {
                result += seconds + '秒';
            }
            else if (secondsShow === 'no') {
            }
            else if (secondsShow === 'dynamic') {
                if (time < secondsDynamicLimit) {
                    result += seconds + '秒';
                }
            }
            if (!result) {
                result += '0分钟';
            }
            return {
                days: allDays,
                hours,
                minutes,
                seconds,
                timeString: result
            };
        }
        else {
            if (params && params.seconds === 'no') {
                return {
                    days: 0,
                    hours: 0,
                    minutes: 0,
                    seconds: 0,
                    timeString: '0分钟'
                };
            }
            else {
                return {
                    days: 0,
                    hours: 0,
                    minutes: 0,
                    seconds: 0,
                    timeString: '0秒'
                };
            }
        }
    },
    getDateTime(time, type = 'long', dateSep = '-') {
        if (time) {
            if (type === 'short' || type === 's') {
                return this.fixDateTime(time, 'DT', 'short', dateSep);
            }
            else {
                return this.fixDateTime(time, 'DT', 'long', dateSep);
            }
        }
        else {
            return '';
        }
    },
    getDate(time, type = 'long', dateSep = '-') {
        if (time) {
            if (type === 'short' || type === 's') {
                return this.fixDateTime(time, 'D', 'short', dateSep);
            }
            else {
                return this.fixDateTime(time, 'D', 'long', dateSep);
            }
        }
        else {
            return '';
        }
    },
    getTime(time, type = 'long') {
        if (time) {
            if (type === 'short' || type === 's') {
                return this.fixDateTime(time, 'T', 'short');
            }
            else {
                return this.fixDateTime(time, 'T', 'long');
            }
        }
        else {
            return '';
        }
    },
    fixDateTime(time, type, subType, dateSep = '-') {
        if (time) {
            let dateTime = '';
            if (typeof (time) === 'string') {
                dateTime = new Date(time.replace(/-/g, '/'));
            }
            else {
                dateTime = new Date(time);
            }
            let year = dateTime.getFullYear().toString();
            let month = (dateTime.getMonth() + 1).toString();
            let day = dateTime.getDate().toString();
            let hour = dateTime.getHours().toString();
            let minute = dateTime.getMinutes().toString();
            let second = dateTime.getSeconds().toString();
            let monthLong = month.length === 2 ? month : ('0' + month);
            let dayLong = day.length === 2 ? day : ('0' + day);
            let hourLong = hour.length === 2 ? hour : ('0' + hour);
            let minuteLong = minute.length === 2 ? minute : ('0' + minute);
            let secondLong = second.length === 2 ? second : ('0' + second);
            let dateStr = year + dateSep + month + dateSep + day;
            let dateStrLong = year + dateSep + monthLong + dateSep + dayLong;
            let timeStr = hourLong + ':' + minuteLong;
            let timeStrLong = hourLong + ':' + minuteLong + ':' + secondLong;
            if (type === 'DT') {
                return subType === 'short' ? (dateStr + ' ' + timeStrLong) : (dateStrLong + ' ' + timeStrLong);
            }
            else if (type === 'D') {
                return subType === 'short' ? dateStr : dateStrLong;
            }
            else {
                return subType === 'short' ? timeStr : timeStrLong;
            }
        }
        else {
            return '';
        }
    }
};