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);
}

Relaterade artiklar