Wie kann ich in JavaScript eine Zeichenkette in ein Datumsobjekt umwandeln?
var st = "date in some format"
var dt = new Date();
var dt_st = // st in Date format, same as dt.
Wie kann ich in JavaScript eine Zeichenkette in ein Datumsobjekt umwandeln?
var st = "date in some format"
var dt = new Date();
var dt_st = // st in Date format, same as dt.
Ich schrieb eine wiederverwendbare Funktion, die ich verwende, wenn ich Datumszeichenfolgen vom Server erhalte.
können Sie das gewünschte Trennzeichen (/ - usw.) übergeben, das Tag, Monat und Jahr trennt, um die split()
Methode.
Sie können es auf dieser Seite sehen und testen Arbeitsbeispiel .
<!DOCTYPE html>
<html>
<head>
<style>
</style>
</head>
<body>
<div>
<span>day:
</span>
<span id='day'>
</span>
</div>
<div>
<span>month:
</span>
<span id='month'>
</span>
</div>
<div>
<span>year:
</span>
<span id='year'>
</span>
</div>
<br/>
<input type="button" id="" value="convert" onClick="convert('/','28/10/1980')"/>
<span>28/10/1980
</span>
<script>
function convert(delimiter,dateString)
{
var splitted = dateString.split('/');
// create a new date from the splitted string
var myDate = new Date(splitted[2],splitted[1],splitted[0]);
// now you can access the Date and use its methods
document.getElementById('day').innerHTML = myDate.getDate();
document.getElementById('month').innerHTML = myDate.getMonth();
document.getElementById('year').innerHTML = myDate.getFullYear();
}
</script>
</body>
</html>
Eine andere Möglichkeit besteht darin, eine Regex mit benannten Erfassungsgruppen über der Formatzeichenkette zu erstellen und dann diese Regex zu verwenden, um Tag, Monat und Jahr aus der Datumszeichenkette zu extrahieren:
function parseDate(dateStr, format) {
const regex = format.toLocaleLowerCase()
.replace(/\bd+\b/, '(?<day>\\d+)')
.replace(/\bm+\b/, '(?<month>\\d+)')
.replace(/\by+\b/, '(?<year>\\d+)')
const parts = new RegExp(regex).exec(dateStr) || {};
const { year, month, day } = parts.groups || {};
return parts.length === 4 ? new Date(year, month-1, day) : undefined;
}
const printDate = x => console.log(x ? x.toLocaleDateString() : x);
printDate(parseDate('05/11/1896', 'dd/mm/YYYY'));
printDate(parseDate('07-12-2000', 'dd-mm-yy'));
printDate(parseDate('07:12:2000', 'dd:mm:yy'));
printDate(parseDate('2017/6/3', 'yy/MM/dd'));
printDate(parseDate('2017-6-15', 'y-m-d'));
printDate(parseDate('2015 6 25', 'y m d'));
printDate(parseDate('2015625', 'y m d')); // bad format
var parts ='2022-07-23'.split('-');
console.log(parts[2]+"-"+parts[1]+"-"+parts[0]);
Es ist eine sichere Methode, die gleichzeitig voll modular ist (einfach tt/mm/jjjj in mm/tt/jjjj usw. ändern). Funktioniert mit verschiedenen Begrenzungszeichen wie "/" und so weiter.
Die oben genannten Ergebnisse:
23-07-2022
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.