I'm working with moment.js and need help converting the following string:
let dtString = "Date(2021,0,1)";
let dt = moment(dtString, 'YYYY,M,D').format('l');
"Date(2021,0,1)" has a zero based month. The code above returns invalid date.
When I try "Date(2021,1,1)", dt returns 1/1/2021.
How can I get moment to recognize that the M value is a zero based month and return "Date(2021,0,1)" as 1/1/2021?
UPDATE:
Here's something else I just tried...again it's clunky but works.
let dtString = "Date(2021,0,1)";
let dtArray = dtString.replace("Date(", "").replace(")", "").split(",").map(Number);
let jsDate = new Date(dtArray[0], dtArray[1], dtArray[2]);
let dt = moment(jsDate).format('l');
console.log(dt);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
UPDATE 2:
Combining @kometen and @eskew I've found that this also works. Thank you to both!
let dtString = "Date(2021,0,1)";
let dtArray = dtString.replace("Date(", "").replace(")", "").split(",").map(Number);
let dt = moment(dtArray).format('l');
console.log(dt);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>