javascript - Sträng till datum i TypeScript
Jag har ett JSON-svar som kommer med objektet '20180715' och jag behöver konvertera den strängen till datum, till exempel:
let dateString = '20180715';
Jag försökte Date testdate=new Date (dateString);/misslyckas.
Hur kan jag konvertera det till ett datumobjekt i TypeScript?
Tack i förväg!
Svar #1
Om den faktiska strukturen på datumet i strängen inte ändras, kan du helt enkelt få delarna av strängen med hjälp av .substr-funktionen.
Tänk på att månaden är baserad på 0, därför måste månaden minskas med 1.
const dateString = '20180715';
const year = dateString.substr(0, 4);
const month = dateString.substr(4, 2) - 1;
const day = dateString.substr(6, 2);
const date = new Date(year, month, day);
console.log(date.toString());Svar #2
Du kan också använda RegEx för att analysera. Observera den dekrementella operatorn (--) för månaden, eftersom Date indexerar månaden från 0. För något mer avancerat, vänligen se moment.js, som inkluderar många formateringsmallar.
const re = /(\d{4})(\d{2})(\d{2})/;
const str = '20180715';
if (re.test(str)) {
const dt = new Date(RegExp.$1, --RegExp.$2, RegExp.$3);
console.log(dt);
}