0

私の最終機能。

var timeToString = function(time)
{
    if (time <= 0)
    {
        return '0';
    }
    else
    {
        var s = '';
        var d;

        var dateObj = { '_86400' : 'วัน', '_3600' : 'ชั่วโมง', '_60' : 'นาที', '_1' : 'วินาที' };

        for ( key in dateObj )
        {
            console.log( time + ' ' + key )

            var suffix = dateObj[key];
            var totaltime = key;
            totaltime = totaltime.substr(1)

            if ( time >= totaltime )
            {
                time -= d = time - time % totaltime;
                s += ( ( d / totaltime) + ' ' + suffix + ' ');
            }
        }
    }
    return s;
}

document.write( timeToString(79) )

結果:1 นาที 19 วินาที

オブジェクトのキー値にプレフィックスを追加して修正することで、修正についてうまく機能します。

これは私の最初のコードです

var timeToString = function(time)
{
    if (time <= 0)
    {
        return '0';
    }
    else
    {
        var s = '';
        var d;

        var dateObj = { '86400' : 'วัน', '3600' : 'ชั่วโมง', '60' : 'นาที', '1' : 'วินาที' };

        for ( key in dateObj )
        {
            var suffix = dateObj[key];
            var totaltime = parseInt(key);

            if ( time >= totaltime )
            {
                time -= d = time - time % totaltime;
                s += ( ( d / totaltime) + ' ' + suffix + ' ');
            }
        }
    }
    return s;
}

結果:79 วินาที

そんな表示はいらない。

結果:1 นาที 19 วินาที

あたりです。

2つの関数の「dateObj」の違いを見てください。

キーのタイプ==数値の場合、for inループでオブジェクトの並べ替えを修正する方法

4

2 に答える 2

0

問題は実際には行にあるようです

 totaltime = totaltime.substr(1)

あなたが変わること

var totaltime = parseInt(key);

ここで何を比較したいのかわかりませんが、あなたが行っている2つの完全に異なる比較のようです. 何を比較したいのか、どのように比較するのかを確認してください。それは何timeですか、誰がそれを送りますか?整数と文字列をどのように比較しますか? 等々

于 2013-09-12T09:20:35.963 に答える
0

私が理解したように、議事録をフォーマットする必要があります。この例を試してください:

function formatTime(minutes) {
        var hh = Math.floor(minutes/60);
        var mm = minutes%60;
        var result = "";
        if (hh > 0)
            result += hh + " hours ";
        if (mm > 0)
            result += mm + " minutes";
        return result;
    }

次に呼び出します。

console.log(formatTime(219));
// 3 hours 39 minutes
于 2013-09-12T08:57:00.510 に答える