変数secondsToMinutes
をstartdate
に追加する必要があります。
secondsToMinutes
は "3:20" startDate
= "2:00 PM" endDate
は "2:03:20 PM"と等しくなければなりません。私はいくつかの方法を試してみましたが、毎回エラーが発生しました。
var startdate = data.StartTime;
startdate = moment(startdate).format('LTS');
var secondsToMinutes = readableDuration(self.runlength());//='3:20';
var seconds = secondsToMinutes.split(':')[1];
var minutes = secondsToMinutes.split(':')[0];
var date = moment(startdate)
.add(seconds, 'seconds')
.add(minutes, 'minutes')
.format('LTS');
日付が無効な日付として表示されます。
moment().format("LTS")
は、文字列値を_hh:mm:ss AM/PM
_形式で返します。標準形式ではない文字列を使用してモーメントオブジェクトを作成する場合、入力フォーマットをモーメントコンストラクターの2番目のパラメーターとして渡す必要があります。
たとえば、文字列_Jan 1, 2017
_の_01012017
_は標準表現ではありません。ただし、モーメントオブジェクトが必要な場合は、moment("01012017")
を使用すると、フォーマット時に「無効な日付」応答が返されます。代わりに、moment("01012017","DDMMYYYY")
を使用してください
_var d = moment("01012017")
d.toISOString() => "Invalid date"
var d = moment("01012017", "DDMMYYYY")
d.toISOString() => "2016-12-31T18:30:00.000Z"
_
コードで、「日付」変数を作成するとき、「hh:mm:ss A」をモーメントコンストラクターの2番目のパラメーターとして以下のように渡します。
_ var date = moment(startdate, "hh:mm:ss A")
.add(seconds, 'seconds')
.add(minutes, 'minutes')
.format('LTS');
_
Momentには本当に優れたドキュメントがあります。私はそれをチェックアウトします: http://momentjs.com/docs/
しかし、あなたの質問をより直接的に解決するには、couldのようにします:
var secondsToMinutes = '3:20';
var seconds = secondsToMinutes.split(':')[1];
var minutes = secondsToMinutes.split(':')[0];
var momentInTime = moment(...)
.add(seconds,'seconds')
.add(minutes,'minutes')
.format('LT');
可能な限り、実際のハンドラーを使用する必要があります。継続時間でできることはいくつかありますが、これはもっと簡潔です。
編集:
別の答えで述べたように:
moment('2:00:00 PM', 'h:mm:ss A')
that形式を処理する場合に必要です。関係なく-瞬間オブジェクトに分/時間を追加/減算することは簡単です。無効な文字列をモーメントオブジェクトに渡すことは、それ自体が別の問題です。 ;)
最後のmoment()
呼び出しでは、値「2:00:00 PM」を解析しようとしています。ドキュメントによると、この場合はString + Format呼び出しを使用する必要があります。
ISO 8601文字列以外の解析結果の一貫性を保つには、文字列+形式を使用する必要があります。
行うとき:
var date = moment('2:00:00 PM')
.add(30, 'seconds')
.add(2, 'minutes')
.format('LTS');
date
はInvalid date
。ただし、フォーマットh:mm:ss A
2番目のパラメーターとして:
var date = moment('2:00:00 PM', 'h:mm:ss A')
.add(30, 'seconds')
.add(2, 'minutes')
.format('LTS');
...結果は2:02:30 PM
。