2017-10-01 5 views
-2

Ich möchte zwei mal wie time1 = '00:05' und time2 = '10:00' hinzufügen. Ich möchte das Ergebnis wie folgt nach der Summe: result='10:05'. Früher habe ich zur Zeit für das, das ist, was ich verwendet:Habe nichts mit moment.js

let x = moment.duration(moment(this.time1, "hh:mm A").add(moment(this.time2, "hh:mm A"))); 
 
let result = moment.utc(x.asMilliseconds()).format('HH:mm:ss');

aber ich habe nichts, wie kann ich es tun?

+1

'' 00: 05 PM'' ist eine Zeit, keine Dauer; es bedeutet fünf Minuten nach Mitternacht, nicht nur fünf Minuten. Und stellen Sie eine Frage nach der anderen. – jonrsharpe

+0

@jonrsharpe ok, was Sie empfehlen, es zu tun. Was soll ich verwenden? –

+0

Ich empfehle Ihnen, mit einer kohärenten Darstellung der Zeit zu beginnen. Ohne zu verstehen, warum Ihre Eingaben und erwarteten Ausgaben so sind, wie sie sind, ist es schwer zu sagen, was Sie tun sollten. Das Hinzufügen von Zeiten ist nicht sinnvoll, weshalb datetime-Bibliotheken Duration-Time-Delta-Typen enthalten. – jonrsharpe

Antwort

0

Sie können die Zeit auf diese Weise nicht mit dem Moment hinzufügen, weil Sie sie zweimal hinzufügen möchten, nicht eine Zeit plus eine Dauer. Wenn Sie zehn Minuten hinzufügen möchten, verwenden Sie die Funktion add() mit einer Dauer.

moment(this.time2, "hh:mm A").add(10, 'minutes') 

Mehr hier: https://momentjs.com/docs/#/manipulating/add/

Es ist nicht wirklich klar, in Ihrer Frage, was 00:05 PM Mittel. Das sieht nicht nach einer gültigen Zeit aus. Moment wird es als 12:05 Uhr interpretieren, aber es sieht so aus, als ob Sie es als 5 Minuten interpretieren möchten. (Nur so bekommst du 10:05 als Antwort). Sie können dies mit einem Moment tun, wenn Sie nicht den Teil der Zeichenfolge enthalten.

moment.duration('00:05') 

Eine Dauer von fünf Minuten. Sie können fügen Sie diese zu Ihrer Zeit mit:

moment('10:00 PM', '"hh:mm A"').add(moment.duration('00:05')) 
// 22:05:00 

Hinzufügen von zwei Perioden funktionieren, aber es ist noch nicht klar, in Moment, wie es zu formatieren, wie Sie wollen. Bis sie format() hinzufügen, dauert dies:

var d = moment.duration('03:10:10').add(moment.duration('01:20:30')) 
moment.utc(d.as('milliseconds')).format("HH:mm:ss") 
// '04:30:40' 
+0

danke, aber ich will nicht hinzufügen, 10 min ich möchte zwei diff mal hinzufügen, weil sie verschieden sein werden und ich weiß nicht die zeit aber was ich bin sicher, dass das format der zeit ist 'hh: mm A' –

+1

@MohammedSaberMohammed Was bedeutet es, zweimal hinzuzufügen? Was ist 23.20 Uhr + 15.00 Uhr? Vielleicht möchtest du dem Unterschied von Mitternacht zu einer anderen Zeit eine Zeit hinzufügen? –

+0

was ich meine, ich möchte einen Code schreiben, die Zeiten hinzufügen, die eine der folgenden sein werden '3:20:00 PM + 00:10:30 PM' Oder ' 3:20:00 AM + 00: 10:30 PM' gibt es irgendeinen Weg, der das macht? –