首页 > 解决方案 > Javascript new Date() 不起作用...有时

问题描述

我这辈子都想不通。下面的代码没有给我星期几,而是给我“选择日期”选项:

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

如果我将月份更改为“3”,它工作正常。事实上,它适用于我尝试过的绝大多数组合。另一个不起作用的组合是年 = '21',月 = '10',日期 = '2'。我错过了什么?我正在 Chrome 中尝试这个。请帮忙!

标签: javascript

解决方案


星期日被认为是一周的第一天,因此如果您getDay()在表示星期日的日期对象上使用,则输出将为0. 结果0 || 'Choose date''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");

如果您想知道为什么0 || "text"is not的结果0,那是因为0被认为是虚假的,并且结果falsy || else始终是第二部分。

您可以查看此页面以查看哪些值被认为是虚假的(不在该组中的所有值都被认为是真实的)


推荐阅读