js 計算剩餘 天、時、分、秒



/**
 * 計算剩餘 天、時、分、秒
 * @param datetime long 型
 * @param d
 * @returns {*}
 * @constructor
 */
function CountDown(datetime, d){
    var now = new Date();
    var leftTime = new Number(datetime) + 3600000*24*d - now.getTime();
    if( leftTime > 0 ) {
        var leftsecond = parseInt(leftTime/1000);
        var day = Math.floor(leftsecond/(60*60*24));
        var hour = Math.floor((leftsecond-day*24*60*60)/3600);
        var minute = Math.floor((leftsecond-day*24*60*60-hour*3600)/60);
        return {
            leftTime: leftTime,
            leftsecond: leftsecond,
            day: day,
            hour: hour,
            minute: minute,
            second: Math.floor(leftsecond-day*24*60*60-hour*3600-minute*60)
        };
    } else {
        return {
            leftTime : leftTime
        };
    }
}

/**
 * 倒計時 -  顯示倒計時
 * @param data complaint json
 * @constructor
 */
function ShowCountDownForUndo(data) {
    var left = CountDown(data.longgeneratetime, 4);//4    
    if( left.leftTime > 0 ) {
        $("#warnmsg").html( ( left.day*24 + left.hour) + '小時' + left.minute + '  ' + left.second + ' ');
    } else {

        clearInterval(timer);
    }
}



/**
 * 計算剩餘可輸入字符,英文佔半個字符
 * @param f textarea
 * @param maxstrlen
 * @param leftCharsEl element id 顯示提示信息的dom節點
 */
function calcLeftCharactors(f, maxstrlen, leftCharsDiv) {
    var str = f.value;
    var myLen = 0, i = 0;

    for (; (i < str.length) && (myLen <= maxstrlen * 2); i++) {
        if (str.charCodeAt(i) > 0 && str.charCodeAt(i) < 128)
            myLen++;
        else
            myLen += 2;
    }
    if (myLen > maxstrlen * 2) {
        f.value = str.substr(0, i-1);
        $('#'+leftCharsDiv).html( 0 );
    } else {
        $('#'+leftCharsDiv).html( Math.min(maxstrlen, Math.floor((maxstrlen * 2 - myLen) / 2)) );
    }
}

//計算剩餘可輸入字數
$('#content_').on('keyup mousedown blur paste', function(){
    var me = this;
    setTimeout(function(){
        calcLeftCharactors(me, 100, 'content_left');
    }, 100);
});



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