web-dev-qa-db-ja.com

瞬間差分を通過した分を取得します

2つのタイムスタンプの差を分単位で取得しようとしています

初めはこのようなタイムスタンプがあります

'15:44:06'

経過時間を確認したい場合は、新しい瞬間のタイムスタンプを作成します

var currentTimestamp = Moment(new Date()).format('HH:mm:ss');

これを返す

'15:42:09'

それから私はそのように違いを取得しようとします

var duration = Moment.duration(Moment(currentTimestamp,'HH:mm:ss').diff(Moment(userTimestamp,'HH:mm:ss')));

そして数分でそれを取得しよう

var elapsedTime = duration().asMinutes();
console.log(elapsedTime);

しかし、コンソールにログインすると、このエラーが発生します

var elapsedTime = duration().asMinutes();
                  ^
TypeError: object is not a function

私はこのコードのほとんどを this stackoverflow から取得しました

12
Jordan

モーメントコンストラクタを適切に使用することで、差分を取得できます。

まず、タイムスタンプを初期化するときは、次の形式を使用する必要があります。

var timestamp = moment('15:44:06','HH:mm:ss');

次に、現在時刻でdiff関数を使用する場合は、次のように使用する必要があります。

timestamp.diff(moment());

次に、指定された数値を.asMinutes()で分に変換できます(最初の)

詳細については、公式ドキュメント here を参照してください。

14
Sahar Zehavi

この質問は少し古くなっています。この答えは、質問が探していた解決策で状態を最新のものにするだけです。

const startDate = moment();
...
elapsedDuration = moment.duration(moment().diff(startDate));
//in minutes
elapseDuration.asMinutes();

diff および 分単位の表示時間 に関するドキュメントに従って

4
Custodio

また、最新のmoment.jsでこれを試すこともできます

var start = moment('15:44:06','HH:mm:ss');
var minutesPassed = moment().diff(start, 'minutes');
4
Raj Sharma