javascript - IE 11 中的 Nan 问题

标签 javascript jquery if-statement internet-explorer-11

我有以下 JavaScript -

datefrom = new Date(event.min);

                           if (datefrom != 'Invalid Date') {

                               var day = datefrom.getDate();
                               var month = datefrom.getMonth() + 1; //Months are zero based
                               var year = datefrom.getFullYear();
                               var hour = datefrom.getHours();
                               var min = datefrom.getMinutes();

                               if (day < 10)
                                   day = "0" + day;
                               if (month < 10)
                                   month = "0" + month;
                               if (hour < 10)
                                   hour = "0" + hour;
                               if (min < 10)
                                   min = "0" + min;

                               datefrom = day + "/" + month + "/" + year + " " + hour + ":" + min;


                               $("#DateBox1").val(datefrom);
                           }
                           else {
                               alert('IM HERE!!!');
                               $("#DateBox2").val(originalFrom);
                           }

在 Chrome 和 FireFox 中使用该应用程序时,我可以成功进入 else 语句并发出警报“!M HERE!!!”不用担心,因为 datefrom 是无效日期。

但是 IE 指出 date from 是 NaN 并且由于某种原因我无法进入 else 语句。

我在 if 语句中添加了警报,以查看运行时的位置,但由于某种原因,我无法进入 else 并在 IE 中设置正确的值。为什么会出现这种情况???

最佳答案

了解输入值是什么会有所帮助,但通常您需要注意,在使用内置 Date 对象时,存在许多已知的跨浏览器怪癖。在一个浏览器中成功解析为日期的字符串在另一个浏览器中可能不会被视为有效。

其次,测试“无效日期”可能不是确定日期是否有效的最佳方法。我建议 if(isNaN(datefrom.getDate())) 可能是一个更好的测试。

最后,如果您要解析日期字符串,您可能需要考虑使用可用于使日期在 JS 中更易于使用的第三方库之一。查找 Date.jsMoment.js 。这些库将为您提供更好的跨浏览器兼容性,以及标准 Date 对象中没有的其他功能。

关于javascript - IE 11 中的 Nan 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22805703/

相关文章:

python - 不使用 if 语句生成多个变量输出

java - 从类内部调用类

javascript - 将焦点设置在使用 jQuery load 方法导入的其他页面元素上

javascript - 根据变量响应隐藏 div

javascript - 如何使用 Node.js 在非常简单的 JS 文件中编辑对象

c# - 如何解析属性值之一中带有双引号的 JSON 对象

javascript - 通过 Javascript 将数据添加到服务器上现有的 JSON 文件

javascript - 为什么 JavaScript 中的异步函数的 UI 不更新

javascript - jQuery ajax 发布数据以形成邮件

javascript - 动漫js问题(完整功能)