EasyUI 的DataGrid中DateTime的格式化问题
想必用过EasyUI的朋友们都应该会遇到这样的情况吧:(下图)

在EasyUI中DataGrid中如果要显示DateTime的时间时候,便会显示上图这样的格式,很明显,这里的格式不会是我们想要的,我们想要的就大概如2014-10-30 13.29之类的才人性话,从数据库后台传过来的是一个DateTime类型,却显示成这样。
对这个时间分析后,无意中发现,这个括号里面的不就是Unix时间戳吗?,那我们把这个时间戳转一下不就行了??于是我写了一个js方法,把传入的字符串(Unix时间戳)转成我们想要的时间格式。
function getTime(/** timestamp=0 **/) {
var ts = arguments[0] || 0;
var t, y, m, d, h, i, s;
t = ts ? new Date(ts * 1000) : new Date();
y = t.getFullYear();
m = t.getMonth() + 1;
d = t.getDate();
h = t.getHours();
i = t.getMinutes();
s = t.getSeconds();
// 可根据需要在这里定义时间格式
return y + '-' + (m < 10 ? '0' + m : m) + '-' + (d < 10 ? '0' + d : d) + ' ' + (h < 10 ? '0' + h : h) + ':' + (i < 10 ? '0' + i : i) + ':' + (s < 10 ? '0' + s : s);
}
然后在DataGrid中的时间这一项加入一个formatter 格式器来对其格式进行格式化。
{ field: 'Title', title: '标题', width: 500 },
{ field: 'Author', title: '作者', width: 100 },
{
field: 'CreateTime', title: '发布时间', width: 100,
formatter: function (date) {
var pa = /.*\((.*)\)/; //获取 /Date(时间戳) 括号中的字符串时间戳 的正则表达式
var unixtime = date.match(pa)[1]; //通过正则表达式来获取到时间戳的字符串
return getTime(unixtime);
}
},
按照上面的写法,应该是没问题的了,于是再次运行效果图如下:

奇怪了,怎么还不是我们想要的格式呢,那个js函数目测是没有问题的,如果有问题的话便应该是那个根本就不是unix时间戳,但是这个字符串也太类似了吧,而且即使前面的年份出了问题,那后面的时间都是很正确的啊,和数据库的基本符合,于是打开网页通过站长工具的unix时间戳转化网站来确定下这个字符串到底是什么

图中可以看到基本就是unix时间戳,只是后面多了几个数字,不懂到底是什么,不过竟然那么接近的话,我直接把它后面的几个截去不就行了吗,最后发现这个方法的确可行/嘻嘻~~~~,于是最后的DataGrid的格式化器便这样写了
formatter: function (date) {
var pa = /.*\((.*)\)/;
var unixtime = date.match(pa)[1].substring(0,10);
return getTime(unixtime);
}
通过substring来截取前面的10个数字,组成的字符串便是我们想要的unix时间戳了,阴差阳错,竟然就这么给我答对了,于是结果便成了我们想要的时间数据

尽管处理方法还有很多,这是只是我想到的处理方法,也不是很复杂,现在的EasyUI应该是能够智能的做到这一步了吧,上面过去getTime的js函数,可以通过Extend扩张到jquery中使用,这样就不需要再每个使用到这个方法的页面都写一次,重构了代码,希望这里的这个能帮到一些也遇到这种情况的朋友一点点提示。
EasyUI 的DataGrid中DateTime的格式化问题的更多相关文章
- easyui datagrid中datetime字段的显示和增删改查问题
datagrid中datetime字段的异常显示: 使用过easyui datagrid的应该都知道,如果数据库中的字段是datetime类型,绑定在datagrid显式的时候会不正常显示,一般需要借 ...
- 在EasyUI的DataGrid中嵌入Combobox
在做项目时,须要在EasyUI的DataGrid中嵌入Combobox,花了好几天功夫,在大家的帮助下,最终看到了它的庐山真面: 核心代码例如以下: <html> <head> ...
- EasyUI DataGrid 中字段 formatter 格式化不起作用
今天用 EasyUI datagrid 来做列表,要对一些数据进行格式化,推断某字段状态时,发现 formatter 格式化相应的函数不起作用. <table id="list_dat ...
- hibernate左连接查询时在easyUI的dataGrid中有些行取值为空的解决办法
1 当使用left join左连连接,sql语句为 select t from SecondPage t left join t.rightNavbar n where 1=1 页面中出现了部分空行的 ...
- EasyUI 解决 datagrid 中 NumberBox 限制小数位数后不能输入小数点问题
初始化界面,发现编辑datagrid,不能输入小数点. var arrColumnsCNT = [[ { title: '毛重', field: 'GrossWeight', halign: 'cen ...
- EasyUI获取DataGrid中某一列的所有值
function count() { var rows = $('#dg'').datagrid('getRows')//获取当前页的数据行 var total = 0; for (var i = 0 ...
- easyui获取datagrid中的某一列的所有值
function getCol(){ var rows = $("#dg").datagrid("getRows"); var total = "&q ...
- easyui datagrid 中序列化后的日期格式化
1.在easyui datagrid 中序列化后的日期显示为:/Date(1433377800000)/ 2.格式化后的显示为: 2015-06-04 08:30:00 3.使用代码如下: 3.1. ...
- EasyUI实现图片的上传后与其他文本框的提交以及DataGrid中图片的展示
图片即文件,在jsp中文件上传很简单,一个type为file的input,一个form指定enctype为multipart/form-data,通过post提交到后台利用apache的commons ...
随机推荐
- hdu 3667(拆边+最小费用最大流)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3667 思路:由于花费的计算方法是a*x*x,因此必须拆边,使得最小费用流模板可用,即变成a*x的形式. ...
- php 将一个字符串分割为组成它的字符
问: php里如何将一个字符串分割为组成它的字符? 比如hello -> [h, e, l, l, o] 以下有三种方法: 这是需要被分割的字符串: $str = 'Hello小样'; ...
- iOS开发之-- 从当前隐藏导航界面push到下一个显示导航界面出现闪一下的问题
在修改项目代码的过程中,遇到一个问题,就是比如主页面的导航栏是隐藏的,但是需要push到别的页面,这个时候,会出现导航栏闪一下的情况, 下面是我写的一种方案,也就是在loadView这个生命周期函数中 ...
- 本地存储数据库indexedDB实现离线预览的功能
今天在学习<高级JS编程>,看到离线存储,cookie和session都十分的熟悉,但是书中还提到了indexedDB和webSQL(已废弃),indexedDB可以像mysql一样建表, ...
- D3D中的渲染状态简介
1). 设置着色模式: SetRenderState(D3DRS_SHADEMODE, D3DSHADE_FLAT) //设置平面着色模式 SetRenderState(D3DRS_SHADEMODE ...
- std::lock_guard
/* std::lock_guard:更方便线程对于互斥量的上锁操作 std::lock_guard:在定义一个lock_guard时上锁,保证在析构或者异常时解锁 */ #include <i ...
- Swift 实现单例模式Singleton pattern的三种方法
转自:点击打开链接 From my short experience with Swift there are three approaches to implement the Singleton ...
- kafka "HelloWorld"实践
前面我们分别介绍了kafka的相关基本原理,kafka的集群服务器搭建以及kafka相关的配置,本文综合前面的理论知识,运用kafka Java API实现一个简单的客户端Demo. 开发环境 操作系 ...
- TCL电视直播软件
升级你的电视系统我的型号46寸 V7300 3D,具体的升级程序在"技术宅"里有下载 找个格式化过的U盘把你的程序拷贝进去,插在电视上,电视会自动升级 当你成功安装V8-0MT32 ...
- Python--进阶处理5
# 使用路径名来获取文件名,目录名,绝对路径等import ospath = r'F:\myProject\lean\a'# Get the last component of the pathbas ...