jQuery MiniUI

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

请教关于mini.DatePicker显示最小时间为空字符串的问题 [复制链接]

Rank: 1

跳转到指定楼层
楼主
发表于 2017-8-2 17:52:41 |只看该作者 |倒序浏览
我们数据库日期时间类型字段的默认值是1900-01-01 00:00,非null,这样的数据在序列化后,用Form.setData()显示到mini.DatePicker控件上的时候,如果时间格式是:yyyy-MM-dd,则显示成:1970-01-01,如果格式是:yyyy-MM-dd HH:mm,则显示成1900-01-01 00:00,这种情况 ,我们在控件上都想显示成空字符串,控件上不要有任何字符,有没有办法在控件上设置达到目的,不要另外赋值,因为控件数量不确定,也有点多。

Rank: 8Rank: 8

沙发
发表于 2017-8-3 10:14:47 |只看该作者
只要给了数据,我们就认为是真实的数据,肯定不会主动删除的。
本地测试也没有发现你说的会转成1970-01-01的问题。
请提供一个简单的例子来重现一下问题。

Rank: 1

板凳
发表于 2017-8-3 15:51:08 |只看该作者
dforce 发表于 2017-8-3 10:14
只要给了数据,我们就认为是真实的数据,肯定不会主动删除的。
本地测试也没有发现你说的会转成1970-01-01 ...

时间格式设置为:yyyy-MM-dd,赋值:0的时候,会显示成1970-01-01

Rank: 8Rank: 8

地板
发表于 2017-8-3 16:51:13 |只看该作者
haikely 发表于 2017-8-3 15:51
时间格式设置为:yyyy-MM-dd,赋值:0的时候,会显示成1970-01-01

0,按我们的解析规则解析就是new Date(0),就是1970-01-01

Rank: 1

5#
发表于 2017-8-7 09:20:30 |只看该作者
dforce 发表于 2017-8-3 16:51
0,按我们的解析规则解析就是new Date(0),就是1970-01-01

控件赋值前有没有事件可以再增加控制的?

Rank: 8Rank: 8

6#
发表于 2017-8-7 10:29:41 |只看该作者
haikely 发表于 2017-8-7 09:20
控件赋值前有没有事件可以再增加控制的?

你这样的情况我们建议
1 在后台输出前,遍历将所有1900-01-01 00:00替换成空字符串,这样前端不需要处理什么
2或者 重写我们的mini.decode方法,加一下如果是1900-01-01 00:00就替换为空
mini.decode = function (json) {
         json=json.replace("1900-01-01 00:00/g","");
         var re = /[\"\'](\d{4})-(\d{1,2})-(\d{1,2})[T](\d{1,2})\d{1,2})\d{1,2})(\.*\d*)[\"\']/g;
        json = json.replace(re, "new Date($1,$2-1,$3,$4,$5,$6)");
        return eval('(' + json + ')');
    }

Archiver|普加软件

GMT+8, 2024-5-10 20:20 , Processed in 1.062993 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部