datepicker获取选中日期并格式化输出,在IE中输出NaN,在火狐和谷歌浏览器中正常
2010-11-26 16:03
1276 查看
今天在工作中遇到这样一个问题:使用jquery ui的datepicker日历控件,获取选中的日期,并且要将日期转换成日期对象格式,如:Tue Nov 30 00:00:00 UTC+0800 2010,以便与其他代码对接。
我的代码如下:
我要实现的效果是:当点击日历控件,选中日期时,获取当前日期,并转换日期格式赋值给变量r,用于后面更复杂的工作。
我们知道,jaascript用来创建一个日期对象,返回当前的日期和时间,直接使用new Date,如:
输出的是当前日期和时间,格式为:Tue Nov 30 00:00:00 UTC+0800 2010。直接可以使用在项目中,而且在IE和火狐上都正常。
可是,如果是new Date()接收外部传来的参数如我使用datepicker中用到new Date(dateText)。这个时候用火狐和谷歌浏览器测试,能正常输出日期格式为:Tue Nov 30 00:00:00 UTC+0800 2010。但是在IE7上就杯具了,IE7输出的结果为:NaN。
郁闷了一阵子,试过很多方法,最后不得不放弃new Date()这个原始的方法,从http://jibbering.com/faq/#parseDate找到了一个转换函数,代码如下:
不难看出,代码能将格式为“2010-11-26”的日期转换为:“Fri Nov 26 00:00:00 UTC+0800 2010 ”的格式。于是,在我的代码中直接调用这个函数处理下就OK。最终代码:
我的代码如下:
$("#mydate").datepicker({ showOn: "button", buttonImage: "images/calendar.gif", buttonImageOnly: true, buttonText:"日历", onSelect:function(dateText,inst){ alert(dateText); r = new Date(dateText); alert(r); ...do something... } }
我要实现的效果是:当点击日历控件,选中日期时,获取当前日期,并转换日期格式赋值给变量r,用于后面更复杂的工作。
我们知道,jaascript用来创建一个日期对象,返回当前的日期和时间,直接使用new Date,如:
var date = new Date(); alert(date);
输出的是当前日期和时间,格式为:Tue Nov 30 00:00:00 UTC+0800 2010。直接可以使用在项目中,而且在IE和火狐上都正常。
可是,如果是new Date()接收外部传来的参数如我使用datepicker中用到new Date(dateText)。这个时候用火狐和谷歌浏览器测试,能正常输出日期格式为:Tue Nov 30 00:00:00 UTC+0800 2010。但是在IE7上就杯具了,IE7输出的结果为:NaN。
郁闷了一阵子,试过很多方法,最后不得不放弃new Date()这个原始的方法,从http://jibbering.com/faq/#parseDate找到了一个转换函数,代码如下:
//转换日期格式 function parseISO8601(dateStringInRange) { var isoExp = /^s*(d{4})-(dd)-(dd)s*$/, date = new Date(NaN), month, parts = isoExp.exec(dateStringInRange); if(parts) { month = +parts[2]; date.setFullYear(parts[1], month - 1, parts[3]); if(month != date.getMonth() + 1) { date.setTime(NaN); } } return date; }
不难看出,代码能将格式为“2010-11-26”的日期转换为:“Fri Nov 26 00:00:00 UTC+0800 2010 ”的格式。于是,在我的代码中直接调用这个函数处理下就OK。最终代码:
$("#mydate").datepicker({ showOn: "button", buttonImage: "images/calendar.gif", buttonImageOnly: true, buttonText:"日历", onSelect:function(dateText,inst){ alert(dateText); var r = parseISO8601(dateText); //转换格式 alert(r); ...do something... } }
相关文章推荐
- java中获取当前系统时间,日期并格式化输出
- java中获取当前系统时间,日期并格式化输出
- java中获取当前系统时间,日期并格式化输出
- JAVA获取当前系统时间和日期并格式化输出总结
- python获取日期及格式化输出
- JAVA中获取当前系统时间,日期并格式化输出
- IE格式化日期显示NaN的问题
- 如何获取当前日期,如何格式化日期输出?
- java 获取当前日期并且格式化输出
- PowerShell中使用Get-Date获取日期时间并格式化输出的例子
- java中获取当前系统时间,日期并格式化输出
- Flex在火狐下上传文件报错,IE下正常
- .Net日期时间格式化输出大全 DateTime.ToString(?)
- VBScript中格式化输出日期的方法
- struts2 格式化日期输出
- PHP获取当前日期和时间及格式化方法参数
- Python进阶(三十三)-Python获取并输出当前日期时间
- python 下获取系统时间并格式化输出
- 使用VBS获取当前日期的前一天 并修正输出格式
- struts2中的日期格式化输出