项目中的一个jqGrid列表页面的一列需要显示日期和时间,如:2011-08-10 10:20:30,查阅官方wiki文档的说明和例子,然后在colModel的需要格式化时间的列的formatter:'date'的后面加了一些formatoptions配置,但IE和FF浏览器中都没有效果,也没提示什么错误~
无奈官方wiki文档的日期时间格式化部分的说明和例子对我来说不够细,只好查看jquery.fmatter.js中的源代码的DateFormat部分,还好查出来了,原来srcformat和newformat的值都可以用masks里的那些选项,而masks里正好有我需要的日期时间格式——ISO8601Long:"Y-m-d H:i:s"。哈,这下好了,马上在formatter:'date'后写上formatoptions:{newformat: 'Y-m-d H:i:s'}并保存,然后清空IE和FF浏览器的缓存重新访问~
奇怪,现在数据格式是符合要求了,但是时分秒都显示为0,调试了下后台数据,发现传送过来的日期时间数据里的时间部分并不为0!!!难道是jqGrid默认日期格式化配置的影响?再看看grid.locale-zh_CN.js中的日期格式化部分的配置,果然是srcformat: 'Y-m-d'啊!这就是为什么我设置了formatoptions:{newformat: 'Y-m-d H:i:s'}后显示的时分秒部分值都为0,原来是源日期时间格式中没有格式化时分秒(H:i:s)部分,然后新格式化后的时间就默认将源格式化部分的时分秒设置为0!
哈哈,再将formatter:'date'的formatoptions配置从formatoptions:{newformat: 'Y-m-d H:i:s'}改成formatoptions:{srcformat: 'Y-m-d H:i:s', newformat: 'Y-m-d H:i:s'}并保存,再清空IE和FF浏览器的缓存重新访问,哈哈,两种浏览器都OK了!
引用地址: