jQuery MiniUI

 找回密码
 立即注册
查看: 9784|回复: 5
打印 上一主题 下一主题

mini-datepicker在mini-datagrid中显示日期时间问题 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2017-7-4 10:47:43 |只看该作者 |倒序浏览
我在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所示);但如果把日期格式修改为: format="yyyy-MM-dd HH:mm" ,就可正常显示(如图2所示);
另外,用这个例子(http://www.miniui.com/demo/#src=datepicker/datepicker.html)在表单上,是可以正常显示(如图3所示),不知道为什么在datagrid上显示会不正常,麻烦帮忙看下如何解决,谢谢
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

沙发
发表于 2017-7-4 11:21:18 |只看该作者
我们看一下。

Rank: 8Rank: 8

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

Rank: 2

地板
发表于 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资料结果

附图2有加valueType=“string"取得的json资料结果

谢谢~

附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

5#
发表于 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这样的字符串,我们会自动解析成时间,再格式化成你需要的格式。

Rank: 2

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

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

Archiver|普加软件

GMT+8, 2024-11-13 14:41 , Processed in 1.042036 second(s), 11 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部