运行 如果在 date.toLocaleString 星期几,IE 中的奇怪行为
Weird behavior in IE when running if on date.toLocaleString day of week
我已经为此苦苦挣扎了几个小时,我只需要检查日期是否是星期二。我的代码在 Chrome、Firefox 等中完美运行,但在 IE 中无法运行。
<script>
var date = new Date('2020-07-21');
var dayOfWeek = String(date.toLocaleString('en-us', { weekday: 'short' }));
if ( dayOfWeek == "Tue" ) {
console.log("Works");
} else {
console.log("Doesn't work");
}
</script>
在这种情况下,IE 上的日志是:不起作用
在这种情况下,Chrome 上的日志是:Works
本例中 dayOfWeek 的值为 Tue。但是当我尝试 运行 If 在 IE 中的变量上时,它不匹配。我已经尝试了多次字符串转换迭代,如果我明确地将 dayOfWeek 的值设置为 Tue 有效。但是,如果我从 date.toLocalString 函数中获取星期几字符串,则不会。谁能告诉我为什么要这样做?
编辑: 忘了说,如果我在 IE 中调用 console.log(dayOfWeek),它会记录:星期二。这就是我困惑的根源。
经过一些实验,我发现String(date.toLocaleString('en-us', { weekday: 'short' }));
returns一个长度为4的字符串'', 'T', 'u', 'e'
,我发现这是一个已知的错误,所以如果你可以把子串在最后 3 个字母中,它应该有效。
我使用 slice 做到了这一点,但您可以使用更合适的任何东西,但请记住它应该是跨浏览器兼容的。
dayOfWeek = dayOfWeek.slice(dayOfWeek.length - 3)
我已经为此苦苦挣扎了几个小时,我只需要检查日期是否是星期二。我的代码在 Chrome、Firefox 等中完美运行,但在 IE 中无法运行。
<script>
var date = new Date('2020-07-21');
var dayOfWeek = String(date.toLocaleString('en-us', { weekday: 'short' }));
if ( dayOfWeek == "Tue" ) {
console.log("Works");
} else {
console.log("Doesn't work");
}
</script>
在这种情况下,IE 上的日志是:不起作用
在这种情况下,Chrome 上的日志是:Works
本例中 dayOfWeek 的值为 Tue。但是当我尝试 运行 If 在 IE 中的变量上时,它不匹配。我已经尝试了多次字符串转换迭代,如果我明确地将 dayOfWeek 的值设置为 Tue 有效。但是,如果我从 date.toLocalString 函数中获取星期几字符串,则不会。谁能告诉我为什么要这样做?
编辑: 忘了说,如果我在 IE 中调用 console.log(dayOfWeek),它会记录:星期二。这就是我困惑的根源。
经过一些实验,我发现String(date.toLocaleString('en-us', { weekday: 'short' }));
returns一个长度为4的字符串'', 'T', 'u', 'e'
,我发现这是一个已知的错误,所以如果你可以把子串在最后 3 个字母中,它应该有效。
我使用 slice 做到了这一点,但您可以使用更合适的任何东西,但请记住它应该是跨浏览器兼容的。
dayOfWeek = dayOfWeek.slice(dayOfWeek.length - 3)