TypeError: moment().tz ist nicht eine Funktion
Beim testen mit jasmine, ich bin immer diese Fehlermeldung.
TypeError: moment.tz ist nicht eine Funktion
Mein code, den ich versuche zu testen ist
let myDate = moment().tz(undefined, vm.timeZone).format('YYYY-MM-DD');
InformationsquelleAutor Sanath | 2017-10-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fix
Wenn Sie Node.js Sie kann versehen werden mit
const moment = require('moment');
//momentstatt
const moment = require('moment-timezone');
//moment-timezoneStellen Sie außerdem sicher, dass Sie installiert haben, moment-timezone mit
npm install moment-timezone --save
Erklärung
Den Fehler zu erfordern moment ohne Zeitzonen auftreten könnten, durch die Installation moment mit
require('moment')
später die Entscheidung zunpm install moment-timezone
, und dann vergessen zu aktualisieren, dierequire
.Verstehe ich nicht deine erste Frage. Könnten Sie das bitte umformulieren? Sie können ersetzen
moment(new Date())
mit nurmoment()
. Ich bearbeitet meine Antwort mit der npm install-Befehle, so versuchen Sie bitte, diese wieder auf irgendwelche Umwelt (Ihrem lokalen Rechner, Kollege, Maschine, Maschinen in der Produktion).Brach gerade auf meine Maschine zu. Fragte mich nur, warum es vorher nicht.
Ich habe das gleiche Problem. Wenn ich
npm i
, es installiert mein[email protected]
. Ich glaube nicht, knw, warum, aber npm ist die Installationmoment-timezone
mit einem sub-repositorynode_modules
und[email protected]
, also der moment, lib die ich verwende ist nicht aktualisiert. In der Produktion, ich habe nicht diese sub node_module dir mit der falschen moment. Warum istnpm
tun dies auf meinem computer jedes mal? Ich benutze dieselbe npm version auf beiden Rechnern.Schließlich war es ein Problem mit der
package-lock.json
löschen Sie es /npm i
und es behebt das Problem :/InformationsquelleAutor Matt Goodrich
Folgenden code für mich...
InformationsquelleAutor Purushottam Sadh
Moment sollte eine Funktion aufrufen. So verwenden
let myDate = moment().tz(...)
Sehen https://momentjs.com/timezone/docs/ für mehr details.
BEARBEITEN
Sollten Sie auch sicherstellen, dass Sie die Zeitzone Erweiterung der moment Bibliothek entweder durch die richtige npm installieren und benötigen (für Knoten) oder die korrekte script-tags (für Allgemeine browser-Nutzung). Finden Sie die verknüpften Dokumente für die Bibliotheken/Skripts enthalten.
moment.tz arbeitet.
InformationsquelleAutor John