1. ホーム
  2. javascript

切り上げ/切り下げ 瞬間を分単位で表す

2024-01-05 03:24:14

質問

の切り上げ・切り下げはどのように行うのですか? momentjs を最も近い分単位に切り上げますか?

私が確認したのは ドキュメント を確認しましたが、このためのメソッドはないようです。

分単位に丸められた文字列が欲しいわけではないことに注意してください。 moment を返してほしいのです (または、代わりに修正されたもの、どちらでもかまいません)。私は文字列に変換する必要がないことを好み、変換も戻します。

ありがとうございます。


要求されたように、ここにいくつかのコードがあります。

var now = new moment(new Date());

if (now.seconds() > 0) {
    now.add('minutes', -1);
}

now.seconds(0);

のように、私はここで手動で瞬間を切り捨てることに成功しましたが、それはむしろハックしているように見えます。これを達成するためのよりエレガントな方法の後です。

どのように解決するのですか?

四捨五入するには、1分を足して それを切り詰める . 切り捨てるには、単に startOf メソッドを使用します。

時刻を丸めるかどうかをチェックするために三項演算子を使っていることに注意してください ( 例えば、点線の 13:00:00 は丸める必要がありません。 ).

分単位で切り上げ/切り下げ

var m = moment('2017-02-17 12:01:01');
var roundDown = m.startOf('minute');
console.log(roundDown.toString()); // outputs Tue Feb 17 2017 12:01:00 GMT+0000

var m = moment('2017-02-17 12:01:01');
var roundUp = m.second() || m.millisecond() ? m.add(1, 'minute').startOf('minute') : m.startOf('minute');
console.log(roundUp.toString());  // outputs Tue Feb 17 2017 12:02:00 GMT+0000

時間単位で切り上げる/切り下げる

var m = moment('2017-02-17 12:59:59');
var roundDown = m.startOf('hour');
console.log(roundDown.toString()); // outputs Tue Feb 17 2017 12:00:00 GMT+0000

var m = moment('2017-02-17 12:59:59');
var roundUp = m.minute() || m.second() || m.millisecond() ? m.add(1, 'hour').startOf('hour') : m.startOf('hour');
console.log(roundUp.toString());  // outputs Tue Feb 17 2017 13:00:00 GMT+0000