2011-01-27 6 views
1

私はPHPで次の関数を持っています、どうすればjavascriptでこれを変換できますか?JavaScriptの長さの長さ

function length_duration ($seconds) 
{ 
    $hours = $mins = $sec = NULL; 

    //for seconds 
    if($seconds > 0) 
    $sec = ($seconds % 60 < 10) ? "0".($seconds%60) : ($seconds%60); 

    //for mins 
    if($seconds > 60) 
    $mins = (($seconds/60%60)<10) ? "0".($seconds/60%60).":" : "".($seconds/60%60).":"; 

    //for hours 
    if($seconds/60 > 60) 
    $hours = (($seconds/60/60) < 10) ? "0".($seconds/60/60).":" : "".($seconds/60/60).":"; 

    return $hours.$mins.$sec; 
} 

答えて

1

ほとんどが$を削除します。 +で、VARで変数を宣言し、小数

を処理するJavaScript面白い方法に対処するために~~使用

デモ:http://jsfiddle.net/kR4Pz/1/丸めとの間の数値からストリングへの変換にはいくつかの違いがあります

function length_duration (seconds) 
{ 
    var hours = '', mins = '', sec = ''; 

    //for seconds 
    if(seconds > 0) 
    sec = (seconds % 60 < 10) ? "0"+(seconds%60) : ""+(seconds%60); 

    //for mins 
    if(seconds >= 60) 
    mins = ~~(((seconds/60)%60)<10) ? "0"+~~((seconds/60)%60)+":" : ""+~~((seconds/60)%60)+":"; 

    //for hours 
    if(seconds/60 >= 60) 
    hours = ~~(((seconds/60)/60) < 10) ? "0"+~~((seconds/60)/60)+":" : ""+~~((seconds/60)/60)+":"; 

    return hours+mins+sec; 
} 
+0

数値を整数に強制する2つのビット補数?どのように面白い。 –

+0

秒単位のテストに失敗する= 60。 –

+0

http://james.padolsey.com/javascript/double-bitwise-not/ – generalhenry

1

2つの言語。また、オリジナルのバグがいくつかあります。例えば、正確に1分の時間が間違ってフォーマットされます。

function length_duration (seconds) 
{ 
    var hours = "", mins = "", sec = ""; 

    //for seconds 
    if(seconds > 0) 
    sec = (seconds % 60 < 10) ? "0"+String(seconds%60) : ""+String(seconds%60); 

    seconds -= (seconds % 60); 

    //for mins 
    if(seconds >= 60) 
    mins = ((seconds/60%60)<10) ? "0"+String(seconds/60%60)+":" : ""+String(seconds/60%60)+":"; 

    seconds -= (seconds % (60*60)); 

    //for hours 
    if(seconds/60 >= 60) 
    hours = ((seconds/60/60) < 10) ? "0"+String(seconds/60/60)+":" : ""+String(seconds/60/60)+":"; 

    return hours+mins+sec; 
} 
関連する問題