JqGrid日期格式化异常求助:30-Oct-24转30-Oct-2024失败并乱码
JqGrid日期格式化问题解决及格式规则查询
格式化失效乱码的修复
你当前的代码出现问题,大概率是月份缩写的locale兼容问题,或者格式符号的细微匹配错误:
- JqGrid的
dateformatter依赖jQuery UI Datepicker的格式规则,d-MMM-yy本身是匹配30-Oct-24的,但如果你的页面没有加载英文locale的jQuery UI资源,JqGrid无法识别Oct这个英文月份缩写,就会输出乱码。 - 调整方案:
- 引入英文版本的jQuery UI locale文件(比如
jquery.ui.datepicker-en.js),或者在JqGrid初始化前设置日期格式化的locale:$.jgrid.formatter.date = { srcformat: 'd-MMM-yy', newformat: 'dd-MMM-yyyy', mask: 'd-MMM-yy', locale: 'en' }; - 也可以尝试将
srcformat改为dd-M-y(如果源数据的日始终是两位),不过核心是确保JqGrid能解析英文月份缩写。 sorttype: 'date'的设置是正确的,但必须保证源日期能被解析为合法的Date对象,否则排序会异常。
- 引入英文版本的jQuery UI locale文件(比如
日期格式规则的查询位置
JqGrid的日期格式规则完全复用jQuery UI Datepicker的格式符号,你可以通过以下途径获取完整列表:
- 查看项目中已引入的jQuery UI离线文档里的Datepicker章节,里面会详细列出所有格式符号的含义,比如:
d:无前置零的日期(1-31)dd:带前置零的日期(01-31)M/MMM:月份缩写(Jan-Dec,英文环境)y:两位年份(24)yy:四位年份(2024)
- 也可以直接查阅JqGrid本地文档中
formatter: 'date'的相关章节,里面会明确说明格式规则和使用示例。
内容的提问来源于stack exchange,提问作者sarsnake
相关产品推荐
相关产品推荐

