比對YYYY-MM-DD HH:MM:SS格式的日期與當前日期的時間間隔

比對YYYY-MM-DD HH:MM:SS格式的日期與當前日期的時間間隔:
function calcDateTimeGap(time) {
        if (time == null || time.length == 0) {
            return '';
        }

        var now = new Date();
        var dateTime = time.split(" ");
        if (dateTime && dateTime.length < 2) {
            return dateTime[0];
        }

        var date = dateTime[0].split('-');
        var time = dateTime[1].split(':');
        if (date.length < 3 || time.length < 3) {
            return dateTime[0];
        }

        var add = new Date(date[0],parseInt(date[1]-1),date[2],time[0],time[1],time[2]);
        var str = '';
        var timeSpan = Math.abs(now - add);
        //計算出相差天數
        var days = Math.floor(timeSpan / (24 * 3600 * 1000));
        if (days < 1) {
            //計算出小時數
            var leave1 = timeSpan % (24 * 3600 * 1000);
            //計算天數後剩餘的毫秒數
            var hours = Math.floor(leave1 / (3600 * 1000));
            if (hours < 1) {
                //計算相差分鐘數
                var leave2 = leave1 % (3600 * 1000);
                //計算小時數後剩餘的毫秒數
                var minutes = Math.floor(leave2 / (60 * 1000));
                if (minutes <= 5) {
                    str = '剛剛';
                } else {
                    str = minutes + '分鐘前';
                }
            } else {
                str = hours + '小時前';
            }
        } else {
            if (days) {
                if (days < 30) {
                    str = days + '天前';
                } else {
                    str = parseInt(days / 30) + '個月前';
                }
            } else {
                str = dateTime[0];
            }
        }
        return str;
    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章