我的Jqgrid的数据源是一个返回json的php 返回的json中的日期约束以毫秒为单位 我想将其转换为常规日期格式 我试图找到一个解决方案,一个真正接近解决方案的解决方案是[下面给出的] JQ网格日期格式
formatter:'date',formatoptions:{srcformat:'U',newformat:'d / m / Y'} 但仍然没有解决我的问题,因为日期不是正确的 24/10/146 这根本不是正确的日期 期待一些有价值的修复或建议
1394085600000 这是返回的json数据应该基本上 03/06/2014
提前致谢
答案 0 :(得分:4)
有很多方法可以解决这个问题。源格式srcformat: 'U'
表示(与jqGrd使用的其他格式一样)PHP格式。从PHP 5.2.2开始,它支持"u"
格式,但它意味着微秒(μs)而不是毫秒(ms)您使用的(例如,请参阅here)。因此,输入数据应该是整数或浮点值,并且由srcformat: 'U'
成功处理1/1000毫秒。 jqGrid解析srcformat: "U"
格式的内容将从以下(参见here)代码行中清楚显示
if( !isNaN( date - 0 ) && String(format).toLowerCase() === "u") {
timestamp = new Date( parseFloat(date)*1000 );
}
因此,您只需调整用作srcformat: "U"
的输入值。
更新:如果您的输入数据与1394085600000
类似,如果您无法更改,那么您可以使用自定义格式化程序调用" date"格式化器:
formatter: function (cellval, opts, rowObject, action) {
return $.fn.fmatter.call(
this,
"date",
new Date(cellval),
$.extend({}, $.jgrid.formatter.date, opts),
rowObject,
action);
}
请参阅使用它的the demo。
更新2: Free jqGrid fork支持新格式选项:srcformat: "u1000"
,用于转换1394085600000
中"03/06/2014"
等长整数格式的日期。因此,要解决问题,应该只升级到当前版本的免费jqGrid。请参阅the demo或the answer
我必须警告伪格式srcformat: 'U/1000'
的用法。 jqGrid(既不是旧的也不是新的)支持格式。它可以用作显示只有日期的黑客,但其他功能将无法正常工作(编辑,过滤,排序等)或甚至无法在某些网页上阅读浏览器(参见the question)。因此,我严格建议不要使用hack whith srcformat: 'U/1000'
。
答案 1 :(得分:4)
我自己想出了解决方案 感谢@oleg的输入 但问题是输入是毫秒,格式化程序src格式是" U"这是unix和毫秒/ 1000将在Unix中提供单位 至于现在 {srcformat:' U / 1000',newformat:' Y / d / m'} 给了我正确的日期格式但是 虽然它没有意义 但仍然保持问题的正确答案
感谢