I have a date value and want to format it.
This is the value:
Thu Jul 07 2022 01:03:18 GMT 0200 (Mitteleuropäische Sommerzeit)
I want to make this format:
console.log(new Date('YYYY-MM-DD h:i:s', dateVal));
but I get invalid date.
How can I make it right ?
CodePudding user response:
The Date
constructor takes only one argument, you can't format a date using it. Do you want exact format you've shown in your question or an ability to use any arbitrary date format? For the first option, the simplest way I see so far is:
let dateVal = 'Thu Jul 17 2022 01:03:18 GMT 0200 (Mitteleuropäische Sommerzeit)';
let dateObj = new Date(dateVal);
let dateISO = dateObj.toISOString()
let dateFmt = dateISO.slice(0, 10) ' ' dateISO.slice(11, 19)
console.log(dateFmt)
CodePudding user response:
Though the Date
object's constructor accepts a handful of parameters to set an actual date, there is no parameter to specify in what way the date should be presented.
So:
let dateVal="Thu Jul 07 2022 01:03:18 GMT 0200 (Mitteleuropäische Sommerzeit)";
console.log(new Date('YYYY-MM-DD h:i:s', dateVal));
is nonsense as it tries to construct a date from two strings.
What you can do however is call the Date's built-in function .toLocaleString()
including the "sv"
locale to get your Date formatted in YYYY-MM-DD h:i:s format.
For example:
let dateVal = "Thu Jul 7 2022 01:03:18 GMT 0200 (Mitteleuropäische Sommerzeit)";
console.log(new Date(dateVal).toLocaleString("sv"))