I can’t figure this out for the life of me. The below code does not give me the day of the week, but instead give me the ‘Choose date’ option:
var year = '21'; var month = '4'; var date = '3'; var dow = new Date(parseInt(year), parseInt(month) - 1, parseInt(date)).getDay() || 'Choose date'; console.log(dow);
If I change the month to ‘3’, it works fine. In fact, it works for the vast majority of combinations I have tried. Another combination that doesn’t work is year = ’21’, month = ’10’, date = ‘2’. What am I missing? I’m trying this in Chrome. Please, help!
Advertisement
Answer
Sunday is considered the first day of the week and therefore if you use getDay() on a date object representing a sunday the output will be 0. The result of 0 || 'Choose date' is 'Choose date'
var date = new Date("2021-01-31T00:00:00.000Z");
console.log(date);
console.log(date.getDay());
console.log(date.getDay() || "Choose Date");In case you were wondering why the result of 0 || "text" is not 0, it’s because 0 is considered a falsy and the result of falsy || else is always the second part.
You can check this page to see which values are considered falsy (all the values that are not in this group are considered truthy)