Detaillierte Erläuterung der JavaScript-Zeit- und Zeitstempelkonvertierung

Das Wichtigste für Javascript, um Zeit, Zeitstempel usw. zu erhalten, ist die Verwendung von DateSchlüsselwörtern, um diese zu erhalten.

1. Zeitstempel mit Javascript abrufen

Es gibt fünf Möglichkeiten, Zeitstempel zu erhalten. Die letzten vier Methoden verwenden new Date()instanziierte Objekte, um die aktuelle Zeit zu erhalten, und verarbeiten dann die aktuell erhaltene Zeit weiter, um den Zeitstempel zu erhalten. Die unten erhaltenen Zeitstempel sind alle in Millisekunden angegeben ms. Wenn Sie in die zweite Ebene konvertieren möchten s, können Sie das erhaltene Ergebnis durch 1000 dividieren.

Methode 1: Date.now()

Date.now() ruft den aktuellen Zeitstempel ab:

Date.now() // 1667960502653

Methode 2: getTime()

getTime() ruft den aktuellen Zeitstempel direkt über die Prototyp-Methode ab:

new Date().getTime() // 1667961973698
new Date('2022-11-09 23:59:59').getTime() // 1668009599000

Methode drei: Date.parse()

Date.parse() konvertiert einen String oder ein Zeitobjekt direkt in einen Zeitstempel:

Date.parse(new Date()) // 1667960585000
Date.parse(new Date('2022-11-09 12:00:00')) // 1667966400000
Date.parse('2022-11-09 23:59:59') // 1667966400000

Hinweis: Diese Methode konvertiert Werte auf Millisekundenebene in 000. Wenn Sie einen Zeitstempel der zweiten Ebene verwenden und keine Dezimalstellen beibehalten, können Sie diese Methode verwenden. Wenn sie auf Millisekundenebene genau ist, wird dies nicht empfohlen.

Methode 4: valueOf()

valueOf() gibt den ursprünglichen Wert des angegebenen Objekts zurück, um einen genauen Zeitstempel zu erhalten:

(new Date()).valueOf() // 1667962876782
(new Date('2022-11-09 23:59:59')).valueOf() // 1668009599000

Methode 5: Number()

Number() wandelt ein Zeitobjekt in einen Zeitstempel vom Typ Number um:

Number(new Date()) // 1667962087928
Number(new Date('2022-11-09 23:59:59')) // 1668009599000

2. Konvertieren Sie den Javascript-Zeitstempel in die Zeit

Das Anwendungsszenario der Konvertierung von Zeitstempeln in Zeit ist weit verbreitet. Im Allgemeinen kann es sich bei den vom Backend an das Frontend zurückgegebenen Daten um einen Zeitstempel handeln, der in eine bestimmte Zeitanzeige im Frontend umgewandelt werden muss. Als Nächstes werden wir verschiedene Methoden klären der Konvertierung von Zeitstempeln in Zeit. Vorsichtsmaßnahmen.

Sie können new Date(时间戳)den Zeitstempel zum Umrechnen in die chinesische Standardzeit verwenden, zum Beispiel:

new Date(1668009599000);

Wed Nov 09 2022 23:59:59 GMT+0800 (中国标准时间) 

Hinweis: Der Zeitstempel muss vom Typ Zahl sein. Wenn es sich um eine Zeichenfolge handelt, lautet das Parsing-Ergebnis: Ungültiges Datum

Wenn das Backend den Zeitstempel direkt an das Frontend zurückgibt, wie konvertiert das Frontend ihn? Im Folgenden werden zwei Implementierungsmethoden vorgestellt:

Methode 1: Generieren Sie das Format „2022/11/9 23:59“.

function getLocalTime(n) {   
	return new Date(parseInt(n)).toLocaleString().replace(/:\d{1,2}$/,' ');   
}

getLocalTime(1668009599000);  2022/11/9 23:59

Sie können auch die String-Interception-Methode verwenden, um so viele Zeichen zu extrahieren, wie Sie möchten. Hinweis: Leerzeichen zählen auch:

function getLocalTime(n) {   
	return new Date(parseInt(n)).toLocaleString().substr(0,16)
}

getLocalTime(1668009599000);  2022/11/9 23:59

Verwendung regulärer Ausdrücke:

function getLocalTime(n) {   
	return new Date(parseInt(n)).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ");
}

getLocalTime(1668009599000);  2022/11/9 23:59:59

Methode 2: Generieren Sie das Format „JJJJ-MM-TT hh:mm:ss“.

function getDate(n){
	n=new Date(n);
	return n.toLocaleDateString().replace(/\//g, "-") + " " + n.toTimeString().substr(0, 8);
}

getDate(1668009599000);  2022-11-9 23:59:59

Diese Methode hat Kompatibilitätsprobleme mit Browsern. Die toLocaleDateString()-Methode variiert von Browser zu Browser. Beispielsweise hat IE das Format „24. August 2016 22:26:19“; Sogou hat das Format „Mittwoch, 24. August 2016". 22:39:42"

Sie können eine bessere Kompatibilität auf folgende Weise erreichen:

function getData(n) {
	let now = new Date(n),
	y = now.getFullYear(),
	m = now.getMonth() + 1,
	d = now.getDate();
	return y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d) + " " + now.toTimeString().substr(0, 8);
}

getDate(1668009599000);  2022-11-09 23:59:59

Das entsprechende Wissen wird später erweitert, also bleiben Sie dran~

Supongo que te gusta

Origin blog.csdn.net/qq_42961150/article/details/127767234
Recomendado
Clasificación