2017-05-05 9 views
0

時計表示(1:25)に秒数(85)を表示するカスタムフィルタがありますが、一定時間動作しません。特に60秒以上70秒未満の場合は、1:7(67秒)または1:0(60秒)のように表示されます。私はそれを修正するロジックをどこに追加するのかわかりません。タイムフィルタが60秒以上70秒未満で動作しない

ありがとうございます。

です。

filter('timeconvert', function() { 

    // Create the return function 
    // set the required parameter name to **number** 
    return function(number) { 

// Ensure that the passed in data is a number 
if(isNaN(number)) { 

    // If the data is not a number 
    return number; 

} else { 

    // If the data we are applying the filter to is a number, perform the actions to check it's ordinal suffix and apply it. 
    var hrs=0; 
    var min=0; 
    var sec=0; 

    if (number/3600>=1){ 
    var hrs=Math.floor(number/3600); 
    var min=Math.floor((number-(hrs*3600))/60); 
    var sec=(number-(hrs*3600)-(min*60)); 
    return hrs+':'+min +':'+ sec; 
    }  
    else if (number/60>=1){ 
    var min=Math.floor(number/60); 
    var sec=Math.floor(number-(min*60)); 
    return min +':'+ sec; 
    } 
    else if(number/60<1&&number/10>=1){ 
    var min=0; 
    var sec=number; 
    return min +':'+ sec; 
    } 
    else if(number/10<1){ 
    var min=0; 
    var sec=number; 
    return min +':'+ '0'+sec; 
    } 
} 
    } 
+0

だから、ゼロパッド数 – epascarello

+0

はあなたが追加することができますとにかく助けを求めて...おかげで、残りを見て中央部を変更し、ゼロを追加しましたフィルター関数に渡す値を入力しますか? – alpeshpandya

+0

希望する出力は何ですか? 1分7秒は* 67秒です.1分7秒です。 –

答えて

0

、ちょうど

 else if (number/60>=1&&number%60>10){ 
     var min=Math.floor(number/60); 
     var sec=Math.floor(number-(min*60)); 
     return min +':'+ sec; 
     } 
     else if (number/60>=1&&number%60<10){ 
     var min=Math.floor(number/60); 
     var sec=Math.floor(number-(min*60)); 
     return min +':0'+ sec; 
     } 
0

あなたのコードが分間正しい値を取得し、それを行うために必要なすべての文字列に0を追加していると仮定すると、私は各他のブロックから、あなたのreturn文を削除してから返すようにロジックを扱うことをお勧めしたいですこれらの値が設定されると、文字列を返します。私はそれを考え出した

return hrs + ':' + (min < 10 ? '0' + min.toString() : min) + sec; 
+0

これは悪くないですが、特定の数字の時間を表示したくないので、0時56分07秒を取得する代わりに、別に処理する方が好きです。56時07分が好きです。 – MehdiN

+0

同じ論理を3進演算子で数時間使用することもできますが、これを0:56:07に使用すると56:7が返されます。 (秒をパディングしていないので、同じロジックが分単位で適用されるため) return(hrs> '?': '')+(min <10? '0' + min.toString() :分)+秒; – chairmanmow

関連する問題