Wahrscheinlich und einfache Antwort darauf, aber ich kann anscheinend keinen Weg finden, moment.js dazu zu bringen, eine UTC-Datumszeit in Millisekunden zurückzugeben. Hier ist, was ich tue:
var date = $("#txt-date").val(),
expires = moment.utc(date);
Irgendeine Idee, was ich falsch mache?
Matt Johnson-Pint
Dies wird gefunden in der Dokumentation. Mit einer Bibliothek wie Moment fordere ich Sie auf, die gesamte Dokumentation zu lesen. Es ist Ja wirklich wichtig.
Angenommen, der Eingabetext wird in Bezug auf die Ortszeit des Benutzers eingegeben:
var expires = moment(date).valueOf();
Wenn der Benutzer angewiesen wird, tatsächlich ein UTC-Datum/eine UTC-Zeit einzugeben, dann:
var expires = moment.utc(date).valueOf();
Bearbeitet – “einfach” entfernt. 🙂
– Matt Johnson-Pint
10. April 2015 um 17:02 Uhr
Und wenn ich bereits ein Momentdatum mit einer Zeitzone habe, wie kann ich es in UTC konvertieren?
– Incerteza
22. April 2015 um 9:27 Uhr
@Alexander- .utc()
– Matt Johnson-Pint
22. April 2015 um 15:32 Uhr
Das geht nicht. Das ändert nur die am Datum verwendeten Methoden, nicht das Datum selbst.
– Kolleen
19. Juni 2015 um 17:26 Uhr
@Colleen – ja, aber normalerweise würde man dann eine dieser Methoden aufrufen, z .format(), die den UTC-Wert ausgeben würde. Es kippen Ändern Sie den internen Datumswert selbst, weil a Date verfolgt bereits einen UTC-Zeitstempel. Es sind immer nur die darauf aufgerufenen Methoden, die bestimmen, ob UTC oder Ortszeit ausgegeben werden. Moment ist in dieser Hinsicht dasselbe.
– Matt Johnson-Pint
19. Juni 2015 um 18:19 Uhr
Bruno Quaresma
Ich benutze diese Methode und es funktioniert. ValueOf funktioniert bei mir nicht.
moment.utc(yourDate).format()
Dies funktioniert laut Dokumentation. konvertiert Ortszeit in UTC.
– Kishor Pawar
28. Februar 2017 um 11:44 Uhr
Hier ist etwas faul. Ich verwende moment.js ver. 2.17.1 und wenn „yourdate“ auf „2017-10-14T21:00:00Z“ (en-us) lautet, gibt das obige Snippet genau das gleiche Ergebnis „2017-10-14T21:00:00Z“ zurück, was offensichtlich nicht der Fall ist utc da ich in gmt+3 bin. Das korrekte Ergebnis wäre ‘2017-10-15T00:00:00+03:00’ und Sie erhalten dies über ‘moment(yourDate).format()’.
– XDS
10. Oktober 2017 um 10:59 Uhr
“moment”: “^2.29.1”, -> das funktioniert bei mir —> moment().utc().format()
– moropesa
12. Juli um 20:48 Uhr
Stand: moment.js version 2.24.0
Angenommen, Sie haben eine lokale Datumseingabe, das ist der richtige Weg um deine umzuwandeln Terminzeit oder Zeit Eingang zu koordinierte Weltzeit :
var utcStart = new moment("09:00", "HH:mm").utc();
oder falls Sie ein Datum angeben
var utcStart = new moment("2019-06-24T09:00", "YYYY-MM-DDTHH:mm").utc();
Wie Sie sehen können, wird die Ergebnisausgabe in UTC zurückgegeben:
//You can call the format() that will return your UTC date in a string
utcStart.format();
//Result : 2019-06-24T13:00:00
Aber wenn Sie dies wie unten tun, ist es wird nicht in UTC umwandeln:
var myTime = new moment.utc("09:00", "HH:mm");
Sie setzen Ihre Eingabe nur auf UTC-Zeit, es ist, als ob Sie erwähnen, dass myTime in UTC ist, …. die Ausgabe wird 9:00 sein
Wenn die Eingabe in UTC erfolgt, ist var s = new moment(“2019-06-24T09:00”, “YYYY-MM-DDTHH:mm”).utc(); ist die richtige Leseweise. Weitere Aufrufe von s.format() wandeln es in Ortszeit um.
Könnten Sie bitte das seltsame Verhalten von erläutern moment().utc(date).format(...)?
– Freeman Lambda
6. Juni 2017 um 9:21 Uhr
Das Verhalten ist nicht seltsam, das sind verschiedene Methoden. Der Erste moment.utc(date) ist für Parsing das date. Der Zweite moment().utc(date) ist für manipulieren die aktuelle Zeit (moment()) und die date Parameter ist da nutzlos .utc() erwartet in diesem Fall keine Parameter.
– CodingHamster
7. Dezember 2017 um 7:48 Uhr
Tyler2P
Das hat bei mir funktioniert. Andere könnten es nützlich finden.
let date="2020-08-31T00:00:00Z"
moment.utc(moment(date).utc()).format() // returns 2020-08-30T22:00:00Z
Könnten Sie bitte das seltsame Verhalten von erläutern moment().utc(date).format(...)?
– Freeman Lambda
6. Juni 2017 um 9:21 Uhr
Das Verhalten ist nicht seltsam, das sind verschiedene Methoden. Der Erste moment.utc(date) ist für Parsing das date. Der Zweite moment().utc(date) ist für manipulieren die aktuelle Zeit (moment()) und die date Parameter ist da nutzlos .utc() erwartet in diesem Fall keine Parameter.
– CodingHamster
7. Dezember 2017 um 7:48 Uhr
Timothy Perez
Wenn alles andere fehlschlägt, initialisieren Sie einfach mit einer Umkehrung Ihres lokalen Offsets neu.
var timestamp = new Date();
var inverseOffset = moment(timestamp).utcOffset() * -1;
timestamp = moment().utcOffset( inverseOffset );
timestamp.toISOString(); // This should give you the accurate UTC equivalent.
Das funktioniert nicht. Was funktioniert, ist das Einstellen der keepOffset Parameter auf true, wie in moment(timestamp).toISOString(true),
– Chris Haines
12. April 2018 um 9:22 Uhr
12449300cookie-checkKonvertieren Sie das Datum mit moment.js in UTCyes