-3

我正在使用API​​返回這樣的時間deal_expiration_time:1469396377,它看起來像它的1970年的秒數。我試圖在MM/SS中獲得倒計時這是角度所以我顯然不能使用jQuery?我已經掙扎了一段時間,並且難以接受這個代碼。我想使它所以其input: 1469396377 | output: 08:21從1970年的JavaScript秒數倒數秒

function(){ 
    var x1, secs1 = 510; 
    x1 = setInterval(function(){myFunc1(9)}, 1000); 

    function myFunc1(timerId){ 
    var minutes = Math.floor(secs1/60); 
    var seconds = secs1 % 60; 
    $('#timer_'+timerId).html(minutes + ':' + seconds); //assuming there is a label with Id 'timer' 

    secs1--; 
    if(secs1 == 0){ 
     document.getElementById('timer_' + timerId).style.hidden = true; 
     clearInterval(x1); 
    } 
    } 
} 
+2

這是Unix時間或紀元時間。你可以使用'Date.now()'或'+ new Date'來獲取它,如[這個類似的問題]上的建議(http://stackoverflow.com/questions/221294/how-do-you-get-a-時間戳中的JavaScript)。您可能必須截短毫秒。 – Havenard

+0

*「這是在角度,所以我顯然不能使用jQuery ??」 - 我不明白爲什麼你不能使用它們在一起,但在任何情況下,jQuery不是一個日期/時間操作庫,所以我不知道你爲什麼要在這裏使用它... – nnnnnn

+0

是否有更多的代碼可以提供?在您的示例中,我沒有看到特定於Angular的任何內容。無論哪種方式,檢查出http://stackoverflow.com/questions/12050268/angularjs-make-a-simple-countdown – Ash

回答

0

可以使用Date.now()獲取當前時間,然後手工計算的時間差。此功能獲取給定時間和當前時間之間的差異,以秒和分鐘爲單位計算差值。然後將這種差異格式化爲倒計時字符串,然後返回。

function getTimeDifference(expirationTime) { 
    var now = Date.now(); 
    var diff = expirationTime - now; 
    var secDiff = Math.round(diff/1000); 
    var minDiff = Math.round(secDiff/60); 
    var diffStr = minDiff + ":" + (secDiff - minDiff * 60); 
    return diffStr 
}