jQuery MiniUI

标题: mini-datepicker在mini-datagrid中显示日期时间问题 [打印本页]

作者: jackylcn    时间: 2017-7-4 10:47:43     标题: mini-datepicker在mini-datagrid中显示日期时间问题

我在datagrid的"预计关帐时间"栏中放了mini-datepicker控件,代码如下:
<div field="PRECLOSEHR" name="PRECLOSEHR" dateFormat="yyyyMMddHHmm" width="30"  headerAlign="center" allowSort="false"><?php echo $this->translate("预算关帐时间");?>         
              <input property="editor" class="mini-datepicker"  valueType="string" allowInput="true" nullValue="null"
              format="yyyyMMddHHmm" timeFormat="HH:mm" showTime="true"  showTodayButton="false"
              />
选择日期时间后资料都能按我设定的格式显示在datagrid上,但当我再点日期小图标,后,弹出的日期显示都是Nan(如图1所示)[attach]9441[/attach];但如果把日期格式修改为: format="yyyy-MM-dd HH:mm" ,就可正常显示(如图2所示)[attach]9442[/attach];
另外,用这个例子(http://www.miniui.com/demo/#src=datepicker/datepicker.html)在表单上,是可以正常显示(如图3所示)[attach]9443[/attach],不知道为什么在datagrid上显示会不正常,麻烦帮忙看下如何解决,谢谢

作者: dforce    时间: 2017-7-4 11:21:18

我们看一下。
作者: dforce    时间: 2017-7-4 14:05:29

看了一下主要是你的format和valueType两个冲突了
valueType=“string"下,控件的值是字符串,format="yyyyMMddHHmm"的话又是一个纯数字组成的字符串,这个我们解析的时候无法分辨解析标准,只能按纯数字的一般规则解析,然后就得到了错误的日期。
我们建议,要么不用valueType="string",要么format用正常的格式,比如yyyy-MM-dd HH:mm
作者: jackylcn    时间: 2017-7-4 15:46:55

本帖最后由 jackylcn 于 2017-7-4 15:48 编辑

如果我用了format="yyyyMMddHHmm",不用valueType=“string",取得datagrid的json资料日期格式会变为了:"2017-08-11T01:58:00",而不是"201708110158"
取datagrid的方法:
var data = datagridTitle.getChanges();
var json = mini.encode(data);
附图1没有加valueType=“string"取得的json资料结果
[attach]9447[/attach]
附图2有加valueType=“string"取得的json资料结果
[attach]9448[/attach]
谢谢~


作者: dforce    时间: 2017-7-4 16:44:53

jackylcn 发表于 2017-7-4 15:46
如果我用了format="yyyyMMddHHmm",不用valueType=“string",取得datagrid的json资料日期格式会变为了:"2 ...

去掉valueType,这样这列的数据值是date,你需要格式化的话,在encode的时候处理一下
var json=mini.encode(data,"yyyyMMDDHHmm",这样也可以格式化成你需要的格式。
但是你下次从后台加载出来然后是这样的格式,我们是不会自动解析成date,还是会有问题的。
我们建议,保存的时候还是像我们示例那样保存yyyy-MM-ddTHH:mm:ss这样的字符串,我们会自动解析成时间,再格式化成你需要的格式。
作者: jackylcn    时间: 2017-7-4 16:58:24

dforce 发表于 2017-7-4 16:44
去掉valueType,这样这列的数据值是date,你需要格式化的话,在encode的时候处理一下
var json=mini.enco ...

我要的就是这效果,因为我们的所有日期时间有前端都要统一成这种格式显示(yyyyMMdd/yyyyMMddHHmm),保存的时候在后台再作处理;谢谢版主.




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2