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 ...
随机推荐
- PHP正则表达式 /i, /s, /x,/u, /U, /A, /D, /S等模式修饰符
i (PCRE_CASELESS) 如果设置了这个修饰符, 模式中的字母会进行大小写不敏感匹配. m (PCRE_MULTILINE) 默认情况下, PCRE认为目标字符串是由单行字符组成的(然而实际 ...
- instance method '*****' not found (return type defaults to 'id')
博文转载至 http://blog.csdn.net/cerastes/article/details/38025801 return type defaultsnot foundiOSwarning ...
- Myeclipse创建Maven项目
1.右击new创建一个Maven Project: 点击Next 继续Next Finish 2.项目成功创建后,项目目录主要有:主代码目录.主资源目录.测试代码目录.测试资源目录.输出目录(代码编译 ...
- Android测试:从零开始2——local单元测试
上一篇分析了android项目的测试分类,这一篇讲local单元测试. 参考android官方文档. 测试前需要配置测试环境,新建项目后,目录下会出现app/src/test/java/文件夹,这个文 ...
- powerdesigner 导入SQL脚本生成模型
- 160229-02、Sublime Text 3 快捷键总结
选择类 Ctrl+D 选中光标所占的文本,继续操作则会选中下一个相同的文本. Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑.举个栗子:快速选中并更改所有相同的变量名.函数 ...
- HDU 5876 大连网络赛 Sparse Graph
Sparse Graph Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) T ...
- easyui datagrid行内编辑
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- 2017 Multi-University Training Contest - Team 3—HDU6058 Kanade's sum
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6058 题目意思:给你一个排列,求所有区间长度大于等于k的区间第k大的数的和…… 思路:一开始看到区间k ...
- devops model
1,自动部署() 2,在线监控 (可视化,智能化) 3,故障诊断 (故障识别,故障隔离) 4,快速定位 (识别环境与程序,数据等问题) 评测工具开发---- 统计条目增加大项目: BI中权限―拨测数据 ...