2016-03-25 10 views
0

私は合計して、人間が読める形式で表示したいISO 8601の持続時間の配列を持っています。 回PT10M33SPT3H00M00SPT50H23M15Sのように見えます。私はmoment jsを使用してそれらをmoment.duration()と解析しましたが、それらを一緒に追加すると、それらを読み込み可能なものにする方法がわかりません。momentjsを人間が読めるように書式設定する方法は?

答えて

1

数時間を過ごした後、私はmoment-duration-formatプラグインを発見しました。デュレーションオブジェクトに.format()を呼び出し、表示する内容にフォーマットする文字列を渡します。ここで私が執筆してしまったものです。これについて

function formatDuration(duration, format_string) { 
    var length; 
    if (format_string === "long") { 
    format = [ 
     duration.months() === 1 ? "Month" : "Months", 
     duration.days() === 1 ? "Day" : "Days", 
     duration.hours() === 1 ? "Hour" : "Hours", 
     duration.minutes() === 1 ? "Minute" : "Minutes", 
     duration.seconds() === 1 ? "Second" : "Seconds" 
    ]; 
    length = duration.format("M [" + format[0] + "] d [" + format[1] + 
    "] h [" + format[2] + "] m [" + format[3] + " and] s [" + format[4] + "]"); 
    } else if (format_string === "short") { 
    length = duration.format("M[m] d[d] h:mm:ss"); 
    } else { 
    length = duration.format(format_string); 
    }; 
    return length; 
}; 
0

は何:

> var d = moment.duration(125, 's') 
undefined 
> moment().subtract(d).fromNow().replace(/ ago/, '') 
'2 minutes' 
関連する問題