NutzCN Logo
分享 关于微信模块的各页面时间显示Invalid date问题
发布于 2408天前 作者 SuyunGit 3053 次浏览 复制 上一个帖子 下一个帖子
标签:

虽然只是个小问题,但是也发个文,小小的提醒一下在做微信模块的猿猿们!

微信着实不好搞,费心费神,从小白开始做,啥都要上网资料!

废话少说,解决问题。
首先说一下,数据库为MySQL,字段名称为‘opAt’,字段类型为:timestamp,其数据格式为‘yyyy-MM-dd HH:mm:ss’,目前木有问题;
然后再看后台的获取数据的地方,,,,获取数据的地方有好几个,以一个为例,其它的差不多;
Controller位置\nutzwk\app\web\modules\controllers\platform\wx\WxMsgUserController.java,fun:data,代码:

@At({"/data/","/data/?"})
    @Ok("json:full")
    @RequiresPermissions("wx.user.list")
    public Object data(String wxid, @Param("nickname") String nickname, @Param("content") String content, @Param("length") int length, @Param("start") int start, @Param("draw") int draw, @Param("::order") List<DataTableOrder> order, @Param("::columns") List<DataTableColumn> columns) {
        Cnd cnd = Cnd.NEW();
        if (!Strings.isBlank(wxid)) {
            cnd.and("wxid", "=", wxid);
        }
        if (!Strings.isBlank(nickname)) {
            cnd.and("nickname", "like", "%" + nickname + "%");
        }
        if (!Strings.isBlank(content)) {
            cnd.and("content", "like", "%" + content + "%");
        }
        /*-----测试代码------*/
        NutMap nutMap = new NutMap();
        nutMap = wxMsgService.data(length, start, draw, order, columns, cnd, null);
        log.debug(nutMap);

        return wxMsgService.data(length, start, draw, order, columns, cnd, null);
    }

返回的数据类型是:NutMap,那么它的内容是什么呢?来看一下控制台打印的内容,重点是 opAt 字段:
/*cn.nutzwk.app.wx.modules.models.Wx_msg@66d4d7b1*/{"id":"63c3ca2412bd42298cee2d","openid":"oQ34Cw9gF2SyZg-K29g","nickname":"分清雨晴","type":"txt","content":"测试","wxid":"de8f6277bd154f52b9","opBy":"","opAt":"2017-09-12 16:14:50"},
此处截取一条出来,,
好的,,已经看到了返回的日期数据格式,再来看看页面获取的情况,同样有很多地方,以一个地方为例:
位置是:\webapp\WEB-INF\views\platform\wx\msg\user\index.html

{
                    "render": function (data, type, row) {
                        if (data) {
                            return moment(parseInt(data*1000)).format("YYYY-MM-DD HH:mm:ss");//获取日期并格式化
                        }
                        return '';
                    },
                    "targets": 3
                },

一下就可以看到,此处获取的方式是把后台传过来的数据类型当成了秒数,所以是此处出了问题,才导致页面无法正常显示日期。

问题根源找到了,下面说一下解决办法,都是写小问题,大神们都是动动思想就能解决的问题了,还是来废话一下:
1.可以改变字段类型。。。。。。
算了,太废话了,直接说最简单的吧
把页面获取日期的方式直接干掉,换成 return data; 都解决啦!

当然,有5个页面获取的日期,要修改5个地方,分别是:\platform\wx\msg\user\index.html;\platform\wx\msg\mass\news.html;\platform\wx\msg\mass\index.html;\platform\wx\tpl\log\index.html;\platform\wx\user\index.html;这5个地方。

                                                                                                  这是一个给不喜欢找问题的猿准备贴。
0 回复
添加回复
请先登陆
回到顶部