現在 JavaScript で作業しているプロジェクトでは、10 進形式を使用しているため、文字列で時/分形式を使用するよりも計算が簡単です (カレンダー関連のプロジェクト)。ただし、ユーザーの画面に時間を表示するには、タイムコードを hh:mm として表示する必要があります。
次のようなコードを使用できるようになるため、これに String プロトタイプ関数を使用するのは素晴らしいことだと思いました。
var time = 8.75;
document.write("Meeting at "+time.toTime()); // writes: Meeting at 8:45
これまでのところ、次を使用して、ほとんど機能しています。
String.prototype.toTime = function(){
var hrs = this.toString().slice(0,this.indexOf("."));
var min = Math.round(this.toString().slice(this.indexOf("."))/100*60);
min = min<10 ? "0"+min : min.toString();
return hrs+":"+min;
}
ただし、問題は、変数が文字列の場合にのみ機能することですtime
。そうしないと、未定義のエラーが発生します。
を使用する必要がないように、プロトタイプを JavaScript の別のオブジェクトに適用する方法はありますtime.toString().toTime()
か?
ありがとう!