从服务器端获取数据时,我的日期格式为dd-MMM-yyyy
。
我正在做一些验证,如
if (new Date("02-MAY-2018").toDateString() == new Date(this.dob).toDateString()) {
alert("No error");
}
else {
alert("error");
}
此处new Date("02-MAY-2018").toDateString()
此转换适用于Chrome,但不适用于IE
答案 0 :(得分:1)
如果您知道您获得的日期字符串模式不会更改,那么您可以编写自己的解析器。这应适用于所有浏览器。
const date = "02-MAY-2018";
const parseDate = dateStr => {
const parts = dateStr.split('-');
const months = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'];
const day = Number(parts[0]);
const month = Number(months.indexOf(parts[1].toLowerCase()));
const year = Number(parts[2]);
return new Date(year, month, day);
}
console.log(parseDate(date).toDateString());
它有点冗长,但它完成了工作。
然后您可以像这样简单地更改代码:
if (parseDate("02-MAY-2018").toDateString() == new Date(this.dob).toDateString()) {
alert("No error");
} else {
alert("error");
}
请注意,您可能需要将比较的右侧 - new Date(this.dob)
更改为parseDate(this.dob)
,具体取决于this.dob
的结构
答案 1 :(得分:-1)
1)我认为你所谈论的格式是dd-MM-yyyy
,而不是dd-MMM-yyyy
,对吧?
2)如果是,那么您应该理解Date对象,将其解析为MM-dd-yyyy
。
因此,您应该更改格式,或者在收到的字符串中将天数替换为月份。
答案 2 :(得分:-1)
IE不支持“dd-MMM-yyyy”格式。
并使用“dd-MM-yyyy”
if (new Date("02-05-2018").toDateString() == new Date(this.dob).toDateString()) {
alert("No error");
}
else {
alert("error");
}