2017-07-16 3 views
0

Ich benutze Moment und Moment-Zeitzone zu versuchen und auszugeben, wie weit entfernt eine zukünftige Zeit von Now (in jeder Zeitzone) ist.Moment Ausgabe Zeit von jetzt

Zum Beispiel, wenn die Eingabezeit 1 Tag und h ist von nun Stunden entfernt, würde die Ausgabe so etwas wie:

Tomorrow at hh:hh AM 

Hier ist, wie ich meine Zeit-Zeitzone schaffen, mit einigem Beispiel Daten:

determineAirTime(dateTime) { 
    console.log(dateTime); // May 12th 2014 8PM 

    dateTime = 
momentTimezone.tz(dateTime, "MMM Do YYYY hA", momentTimezone.tz.guess()); 

    console.log(dateTime) // 2014-05-12T20:00:00-04:00 
    } 

Mein Problem werden Umwandeln die obige Zeit (2014-05-12T20: 00: 00-04: 00), zu einem lesbaren Format. Wie tomorrow at 8:00pm, wo es die Zeitzone berücksichtigt.

Ich habe fromNow() und calendar() im Moment versucht, aber sie nur ausgeben, wie viele Tage es sein wird.

Wie kann ich meine Moment-Zeitzonen-Zeichenfolge in ein genaues Datum/Tag/Sekunden von der aktuellen Zeit konvertieren?

Antwort

0

Sie sollten vorsichtig sein wird "freundliche" Formate, viele Benutzer finden sie lästig. Wie auch immer, können Sie die calendar Methode verwenden:

// Create a date for 13:15:23 tomorrow 
 
var d = new Date(); 
 
d.setDate(d.getDate()+1); 
 
d.setHours(13,15,23); 
 
// Show friendly format 
 
console.log(moment(d).calendar());
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>

+0

Danke für den Kommentar, ich habe es getönten ein wenig nach unten, wenn durch freundliche Formate Sie alle italtics gemeint/etc. Ihre Lösung war etwas, das ich ausprobiert habe, aber es gibt nur die Anzahl der Tage aus. Z.B. console.log (Moment (dateTime) .calendar()); Ausgaben "x Tage" – Edon

+0

Eigentlich habe ich es mit ein paar anderen Werten versucht, und es scheint zu funktionieren. Ich werde ein wenig mehr testen – Edon