Mit NodeJS möchte ich eine Date
in das folgende String-Format umzuwandeln:
var ts_hms = new Date(UTC);
ts_hms.format("%Y-%m-%d %H:%M:%S");
Wie kann ich das tun?
Mit NodeJS möchte ich eine Date
in das folgende String-Format umzuwandeln:
var ts_hms = new Date(UTC);
ts_hms.format("%Y-%m-%d %H:%M:%S");
Wie kann ich das tun?
Wenn Sie Node.js verwenden, sind Sie sicher, dass Sie EcmaScript 5 haben, und so hat Date eine toISOString
Methode. Sie fordern eine leichte Änderung der ISO8601:
new Date().toISOString()
> '2012-11-04T14:51:06.157Z'
Schneiden Sie also einfach ein paar Dinge heraus, und schon sind Sie fertig:
new Date().toISOString().
replace(/T/, ' '). // replace T with a space
replace(/\..+/, '') // delete the dot and everything after
> '2012-11-04 14:55:45'
Oder, in einer Zeile: new Date().toISOString().replace(/T/, ' ').replace(/\..+/, '')
ISO8601 ist notwendigerweise UTC (was auch durch das nachgestellte Z im ersten Ergebnis angezeigt wird), so dass Sie standardmäßig UTC erhalten (was immer eine gute Sache ist).
UPDATE 2021-10-06: Hinzufügen von Day.js und Entfernen von fehlerhaftem Edit von @ashleedawg
UPDATE 2021-04-07: Luxon wurde von @Tampa hinzugefügt.
UPDATE 2021-02-28: Moment.js wird nun nicht mehr aktiv weiterentwickelt. Es wird nicht so schnell verschwinden, weil es in so viele andere Dinge eingebettet ist. Die Website hat einige Empfehlungen für Alternativen und eine Erklärung, warum.
UPDATE 2017-03-29: Datum-fns hinzugefügt, einige Anmerkungen zu Moment und Datejs
UPDATE 2016-09-14: SugarJS hinzugefügt, die einige ausgezeichnete Datum/Zeit-Funktionen zu haben scheint.
OK, da niemand eine wirkliche Antwort gegeben hat, hier ist meine.
Eine Bibliothek ist sicherlich die beste Lösung, um Datums- und Zeitangaben auf standardisierte Weise zu behandeln. Bei Datums-/Zeitberechnungen gibt es viele Grenzfälle, so dass es nützlich ist, die Entwicklung an eine Bibliothek abgeben zu können.
Hier ist eine Liste der wichtigsten Knotenpunkt kompatible Bibliotheken zur Zeitformatierung:
Außerdem gibt es Nicht-Knoten Bibliotheken:
Es gibt eine Bibliothek für die Konvertierung:
npm install dateformat
Dann schreiben Sie Ihre Anforderung:
var dateFormat = require('dateformat');
Dann binden Sie den Wert:
var day=dateFormat(new Date(), "yyyy-mm-dd h:MM:ss");
siehe Datumsformat
Ich habe nichts gegen Bibliotheken im Allgemeinen. In diesem Fall eine Allzweck-Bibliothek scheint overkill, es sei denn, andere Teile der Anwendung Prozess Daten schwer.
Das Schreiben kleiner Hilfsfunktionen wie dieser ist sowohl für Anfänger als auch für erfahrene Programmierer eine nützliche Übung und kann für die Neulinge unter uns eine Lernerfahrung sein.
function dateFormat (date, fstr, utc) {
utc = utc ? 'getUTC' : 'get';
return fstr.replace (/%[YmdHMS]/g, function (m) {
switch (m) {
case '%Y': return date[utc + 'FullYear'] (); // no leading zeros required
case '%m': m = 1 + date[utc + 'Month'] (); break;
case '%d': m = date[utc + 'Date'] (); break;
case '%H': m = date[utc + 'Hours'] (); break;
case '%M': m = date[utc + 'Minutes'] (); break;
case '%S': m = date[utc + 'Seconds'] (); break;
default: return m.slice (1); // unknown code, remove %
}
// add leading zero if required
return ('0' + m).slice (-2);
});
}
/* dateFormat (new Date (), "%Y-%m-%d %H:%M:%S", true) returns
"2012-05-18 05:37:21" */
Prüfen Sie den unten stehenden Code und den Link zu Datum Objekt , Intl.DateTimeFormat
// var ts_hms = new Date(UTC);
// ts_hms.format("%Y-%m-%d %H:%M:%S")
// exact format
console.log(new Date().toISOString().replace('T', ' ').substring(0, 19))
// other formats
console.log(new Date().toUTCString())
console.log(new Date().toLocaleString('en-US'))
console.log(new Date().toString())
// log format
const parts = new Date().toString().split(' ')
console.log([parts[1], parts[2], parts[4]].join(' '))
// intl
console.log(new Intl.DateTimeFormat('en-US', {dateStyle: 'long', timeStyle: 'long'}).format(new Date()))
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.