私はHH:mm
の形式の時刻データ配列を13:58
のように持っています。配列に異なる時刻の50個のエントリがあるとします。例えば、18:29
の新しい時間をどのように比較すれば、それはどの内部配列よりも大きいのですか?毎回各時間を秒に変換すべきか、それともより良いアプローチが必要なのでしょうか?javascriptでの比較時間
1
A
答えて
1
あなたはmomentjsを使用することができます。
var time1 = "18:58";
var time2 = "20:30";
var isBefore = moment(time1, "HH:mm").isBefore(moment(time2, "HH:mm"));
console.log(isBefore);
0
あなたは、コンパレータ機能を書くことができます。時間と分をDateコンストラクタに渡してミリ秒を取得するだけです。
function toIntArray(arr) {
return arr.map(function(x) { return parseInt(x, 10) });
}
function timeToMillisecondsUTC(time) {
var tokens = toIntArray(time.split(':'));
return Date.UTC(1970, 0, 1, tokens[0], tokens[1]);
}
function timeCompare(a, b) {
return timeToMillisecondsUTC(a) - timeToMillisecondsUTC(b);
}
var dateStrings = [ '13:58', '18:29', '15:25', '12:01' ];
console.log(dateStrings.sort(timeCompare));
.as-console-wrapper { top: 0; max-height: 100% !important; }
0
ここで分の数に時間を変換するために、正規表現とString.replace
を使用するソリューションですので、簡単に比較することができます。
ザ・あなたは `01、例えば、などの値をエンコードする場合は、リストの各エントリは、述語関数
let convert = s => s.replace(/(\d+):(\d+)/, (match, $1, $2) => $1*60 + $2*1);
let list = ["11:25", "10:38"];
let out = list.every(entry => convert(entry) > convert("18:29"));
console.log(out)
+0
はこのes6コードですか?私はそれを蒸散する必要がありますか? – user1765862
+0
古いブラウザーでは矢の機能を移動する必要があるかもしれませんし、通常の機能 – alebianco
関連する問題
- 1. レールで時間を比較
- 2. VBAの時間を比較
- 3. 実行時間の比較
- 4. Dの時間比較D
- 5. 時間範囲の比較
- 6. Androidの比較時間
- 7. Excel時間の比較
- 8. SystemCの時間比較
- 9. 12時間形式のJavaScriptでの比較とC#
- 10. は時間を比較し
- 11. Androidサービス、時間を比較
- 12. 秒間のRails時間の比較
- 13. ASPクラシック/ VBscriptでの時間の比較
- 14. Excelでの時間を比較
- 15. MySQL:時間の比較結果で
- 16. javascriptで時間を比較するには?
- 17. Javaで時間と時間の操作を比較する
- 18. Tibcoで時間を比較するBW
- 19. Windowsのバッチファイルの時間の比較
- 20. アルゴリズムの実行時間の比較
- 21. 時間の比較とvbの相違
- 22. Pythonの継続時間の比較
- 23. 時間と評価のdatetimeの比較
- 24. JavaScript:配列間の比較演算子
- 25. Javascript/JQueryを使用した時間検証(および比較)
- 26. 比較時間が動作していないjavascript
- 27. ハッシュマップの比較実行時間
- 28. MySQL DATETIMEスタンプとの時間比較チェック
- 29. 合格時間の評価/比較
- 30. 声明の時間を比較する
からtrueを返すかどうかを確認するために
Array.every
方法使用しています:02'文字列を比較はうまくいくはずです(私の視点から見れば秒への変換が望ましいでしょう)。 – Sirkoはい、すべての繰り返しで計算を行う必要がないので、秒に変換する方が良いでしょう。配列 'some'はおそらくあなたが使いたいものです。 – epascarello
秒への変換は常に優先されます。先頭のゼロを忘れると文字列を比較するとバグが発生するためです。 '' 2 "< "10" --> false' – Shilly