jQuery MiniUI

标题: 请教关于mini.DatePicker显示最小时间为空字符串的问题 [打印本页]

作者: haikely    时间: 2017-8-2 17:52:41     标题: 请教关于mini.DatePicker显示最小时间为空字符串的问题

我们数据库日期时间类型字段的默认值是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,这种情况 ,我们在控件上都想显示成空字符串,控件上不要有任何字符,有没有办法在控件上设置达到目的,不要另外赋值,因为控件数量不确定,也有点多。
作者: dforce    时间: 2017-8-3 10:14:47

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

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

时间格式设置为:yyyy-MM-dd,赋值:0的时候,会显示成1970-01-01
作者: dforce    时间: 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
作者: haikely    时间: 2017-8-7 09:20:30

dforce 发表于 2017-8-3 16:51
0,按我们的解析规则解析就是new Date(0),就是1970-01-01

控件赋值前有没有事件可以再增加控制的?
作者: felt    时间: 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 + ')');
    }





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