关于js new Date() 出现NaN 的分析
此NaN不为NaN:
var date =new Date(d);
if(!date || !date.getFullYear) {
return;
}
return S.Date.format(d,'yyyy-mm-dd');//格式化函数,跟此文无关
在其他浏览器下正常,但是在ie下,程序报错
在ie调试器下,发现date 为NaN,如图:
如果是NaN,那么if判断会返回true,会 return "",但是诡异的一幕发生了,
代码说明if判断返回了false,控制台的结果也说明了这一点:
可以看出date = NaN,但是 !date 为false,!NaN 为 true,我的第一反应,ie下JS的Bug?
然后又做了一些测试
代码如下:
var date = NaN;
alert(!date) //返回true
var date = new Date('2011-1-1');
alert(!date) //返回false
但是我想了一下还是不太对,又在控制台做了下面的测试:
这个说明date的getFullYear是存在的,那么date是个对象
这个也说明了,date是个object 而不是 NaN,仅仅是ie调试器的一个问题
date.getFullYear() =》NaN
date.getDate() =》NaN
这些NaN则为真正的NaN
总结 :
在ie下 new Date('date text') 时返回的结果是一个特殊的日期对象,只是ie调试器将之显示成了NaN, 对其调用返回number的方法将都会返回NaN.
相关推荐
-
JS中Date日期函数中的参数使用介绍
要创建一个一个日期对象,可以使用以下的方式: 复制代码 代码如下: var now=new Date() 当然,函数中没有传递任何参数,表示此对象now自动获取了当前的时间. 如果想要创建一个自定义时间的对象,则要对Date()进行参数的传递.而这个参数,必须是毫秒数(UTC时间1970年1月1日午夜起至自定义时间为止的毫秒数). 我们可以使用Date.parse()和Date.UTC()来获得自定义时间的毫秒数. Date.parse()接收一个表示日期的字符串参数,例如"May 25,201
-
javascript中Date format(js日期格式化)方法小结
本文实例总结了javascript中日期格式化的方法.分享给大家供大家参考,具体如下: 方法一: // 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季度(q) 可以用 1-2 个占位符, // 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) // 例子: // (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 200
-
js实现的日期操作类DateTime函数代码
方法注解: 将指定的天数加到此实例的值上. 将指定的小时数加到此实例的值上. 将指定的分钟数加到此实例的值上. 将指定的毫秒数加到此实例的值上. 将指定的月份数加到此实例的值上. 将指定的秒数加到此实例的值上. 将指定的年份数加到此实例的值上. 将此实例的值与指定的 Date 值相比较,并指示此实例是早于.等于还是晚于指定的 Date 值. 返回一个数值相同的新DateTime对象 返回一个值,该值指示此实例是否与指定的 DateTime 实例相等. 获取此实例的日期部分. 获取此实例所表示的日
-
关于js datetime的那点事
复制代码 代码如下: //把一个日期字符串如"2007-2-28 10:18:30"转换为Date对象 var strArray=str.split(" "); var strDate=strArray[0].split("-"); var strTime=strArray[1].split(":"); var a=new Date(strDate[0],(strDate[1]-parseInt(1)),strDate[2],
-
javascript中IE浏览器不支持NEW DATE()带参数的解决方法
复制代码 代码如下: var date1=new Date(dateTimes[z][1]); 在火狐下 可以正常取得时间,在IE7下 却是 NaN.纠结老长时间,放弃了new date 然后再老外的论坛中找了一段段代码可以兼容所有浏览器的格式化日期代码: 复制代码 代码如下: function NewDate(str) { str = str.split('-'); var date = new Date(); date.setUTCFullYear(str[0], str[1] - 1, s
-
JavaScript Date对象使用总结
//全局函数 Date //Date 类的静态方法 Date.parse Date.UTC //Date 对象的建立方法 new Date() new Date(毫秒数) new Date(标准时间格式字符串) new Date(年, 月, 日, 时, 分, 秒, 毫秒) //Date 对象的更多方法 getFullYear (getUTCFullYear) getMonth (getUTCMonth) getDate (getUTCDate) getDay (getUTCDay) getHou
-
js字符串日期yyyy-MM-dd转化为date示例代码
最近遇到一个问题,就是获取表单中的日期往后台通过json方式传的时候,遇到Date.parse(str)函数在ff下报错: NAN 找了些资料,发现是由于Date.parse()函数对日期格式有要求:详细参考 Date.parse函数 对于js操作日期: 创建一个日期对象: var objDate=new Date([arguments list]); 参数形式有以下5种: 复制代码 代码如下: view plainnew Date("month dd,yyyy hh:mm:ss");
-
JS简单实现String转Date的方法
本文实例讲述了JS简单实现String转Date的方法.分享给大家供大家参考,具体如下: <script> var s=["2008-8-1","2009/9/2","10/3/2010"]; for(var i=0;i<s.length;i++){ var d = string2date(s[i]); var year = d.getFullYear(); var month = d.getMonth()+1; var dat
-
js通过Date对象实现倒计时动画效果
js通过Date对象实现倒计时效果,具体内容如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>倒计时动画</title> <style> div{ text-align:center; height:100px; line-height:100px; } </style> &l
-
JavaScript Date对象应用实例分享
本文实例为大家分享了js Date对象应用3个实例,供大家参考,具体内容如下 一.获取日期时间,秒数实时跳动 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>date01</title> <style> #date{ position: absolute; font-size: 30px; f
随机推荐
- 正则表达式中的正向预查和负向预查实例分析
- 使用批处理按要求批量删除文件夹方法汇总
- 批处理文件(bat文件)注册dll批量注册dll
- 实例讲解java定时任务
- Webpack打包css后z-index被重新计算的解决方法
- Dos Shell操作代码
- javascript实现跳转菜单的具体方法
- 浅谈C++继承中的名字查找
- Android的HTTP扩展包OkHttp中的缓存功能使用方法解析
- 指向类成员函数的指针其实并非指针
- iOS CoreData 增删改查详解
- js对象实例详解(JavaScript对象深度剖析,深度理解js对象)
- 怎样才能成为PHP高手?学会“懒惰”的编程
- Python3生成手写体数字方法
- python爬虫获取淘宝天猫商品详细参数
- C# TSC打印二维码和条形码的实现方法
- 详解Python读取yaml文件多层菜单
- 更新pip3与pyttsx3文字语音转换的实现方法
- 剑指offer之C语言不修改数组找出重复的数字
- 易语言HOOKAPI钩子操作代码实例