javascript - easyui日期显示问题
黄舟
黄舟 2017-04-11 11:27:16
[JavaScript讨论组]

前台用的easyui表格有日期列

数据库datatime类型显示不对啊,不是时间格式啊。。咋回事

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(1)
怪我咯

这应该是一个长整数表示的时间,其值是一个毫秒数。用 new Date(longIntValue) 就可以得到对应的日期对象,比如 new Date(1467785308000) 就是 2016 年 7 月 6 日的一个日期对象。

表格显示成日期格式,可以为表格对应的列添加 formatter,一个用于将原值转换成想显示的文本的函数。

假如你的表格ID是 datagrid,列名是 addDate,那么可以用如下语句添加 formatter

var grid = $("#datagrid");
var options = grid.datagrid("getColumnOption", "addDate");
options.formatter = function(value, row, index) {
    var d = new Date(value);
    return d.format("yyyy-MM-dd");
};

其中日期的 format 函数是通过对 Date.prototype 的扩展来实现的(这个函数网上很容易搜出来):

Date.prototype.format = function(format) {
    var o = {
        "M+": this.getMonth() + 1, //month 
        "d+": this.getDate(), //day 
        "h+": this.getHours(), //hour 
        "m+": this.getMinutes(), //minute 
        "s+": this.getSeconds(), //second 
        "q+": Math.floor((this.getMonth() + 3) / 3), //quarter 
        "S": this.getMilliseconds() //millisecond 
    };

    if (/(y+)/i.test(format)) {
        format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    }

    for (var k in o) {
        if (new RegExp("(" + k + ")").test(format)) {
            format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
        }
    }
    return format;
};

如果在设置 fomatter 的时候数据已经加载完了,那就再加一句

grid.datagrid("reload");
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号