2012-02-16 136 views
2

我有一个春天的MVC Java应用程序,我将joda DateTime序列化为json。jqgrid日期时间格式

当我检查通过浏览器的输出日期时间序列化的数据是这样的:

startDate: 1323147660000 

我不知道这个数据是在哪种格式我已经试过srcformat和newformat的许多不同的组合格式选项,包括基于this post

{srcformat:'U', newformat:'m/d/Y'} 

我的直觉是,这是因为时代的毫秒数,但我不知道如何jqGrid的范围内正确地使用它。

在此先感谢您的帮助。

+1

请参阅[旧的回答](http://stackoverflow.com/a/8342427/315935) – Oleg 2012-02-16 19:49:38

+0

我刚刚发布了[错误报告](http://www.trirand.com/blog/?page_id=393/bugs/support-of-both-u-and-u-php-date-formats/#p25975)与我的建议如何解决jqGrid代码支持日期的'U'和'u'格式。 – Oleg 2012-02-17 09:15:11

回答

2

事实上,来自epoch格式的毫秒在jqGrid以前的版本之一中是开箱即用的。不幸的是,由于不明原因它已被放弃。

这里是一个解决办法:

{ 
    name:'startDate', 
    label: 'Start date' 
    formatter: function(cellValue, options) { 
     if(cellValue) { 
      return $.fmatter.util.DateFormat(
       '', 
       new Date(+cellValue), 
       'UniversalSortableDateTime', 
       $.extend({}, $.jgrid.formatter.date, options) 
      ); 
     } else { 
      return ''; 
     } 
    } 
} 

注意,使用自定义formatter可以解析日期和你希望的任何方式对其进行格式化。但我尽我所能使用内置的jqGrid格式设施(请参阅UniversalSortableDateTime?)

+2

我刚刚发布[错误报告](http://www.trirand.com/blog/?page_id=393/bugs/support-of-both-u-and-u-php-date-formats/#p25975 )与我的建议如何修复jqGrid代码以支持日期的'U'和'u'格式。 – Oleg 2012-02-17 09:15:52

+0

+1奥列格,谢谢。实际上,作为一个数字的原始纪元时间在以前的版本中是不成熟的。 – 2012-02-17 09:23:17

+0

我同意你的意见。从版本4.1.2日期格式(见[这里](https://github.com/tonytomov/jqGrid/blob/v4.1.2/js/jquery.fmatter.js#L144-149))与工作正常“ u'和'U',但版本4.2.0有[“优化”代码](https://github.com/tonytomov/jqGrid/blob/v4.2.0/js/jquery.fmatter.js#L144-146 )这是越野车。我希望Tony能修正这些代码。 – Oleg 2012-02-17 09:30:19