DateTime 間の時差を取得する
時間ベースのデータを扱う場合、指定された 2 つの日付または時刻間の時差を理解することが重要です。この差は、Moment.js ライブラリを使用して計算できます。
Moment.js ソリューション
Moment.js は、時間差を計算するための堅牢な方法を提供します。次の例を考えてみましょう。
var now = "04/09/2013 15:00:00"; var then = "04/09/2013 14:20:30"; console.log(moment(moment.duration(now.diff(then))).format("hh:mm:ss"));
このコードは、「現在」と「当時」の時間差を表す「00:39:30」を出力する必要があります。
Duration to時間間隔の変換
時差が 24 時間を超える場合、上記の方法では誤った値が返される可能性があります。これを解決するには、より堅牢なソリューションを使用します。
var now = "04/09/2013 15:00:00"; var then = "02/09/2013 14:20:30"; var ms = moment(now,"DD/MM/YYYY HH:mm:ss").diff(moment(then,"DD/MM/YYYY HH:mm:ss")); var d = moment.duration(ms); var s = Math.floor(d.asHours()) + moment.utc(ms).format(":mm:ss");
この改訂されたコードでは、時間差をミリ秒 (ms) に変換し、moment.duration() 関数を使用して期間オブジェクト ( d)。最後に、duration オブジェクトから時、分、秒を抽出し、時間間隔 (秒) にフォーマットします。このアプローチにより、時差が 24 時間を超える場合でも正確な結果が保証されます。
Moment-Duration-Format プラグイン
あるいは、moment-duration-format プラグインの使用を検討してください。これは期間オブジェクトをフォーマットするための専用メソッドを提供します:
var now = "04/09/2013 15:00:00"; var then = "02/09/2013 14:20:30"; var ms = moment(now,"DD/MM/YYYY HH:mm:ss").diff(moment(then,"DD/MM/YYYY HH:mm:ss")); var d = moment.duration(ms); var s = d.format("hh:mm:ss");
このプラグインでは、時間を差は手動計算を必要とせずに時間間隔に直接フォーマットされます。
以上がMoment.js を使用して 2 つの DateTime 間の時差を正確に計算して書式設定し、24 時間を超える差異を処理するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。