前言:
这是之前的一个项目中的内容,最近一直在做项目、芒杜不醒不醒滴,在项目即将结束之际,一大波总结来袭,敬请~算了,主要是写给自己看的,如果能给大家带来一些帮助那就再好不过了,先介绍一下宏观的一些东西:前后端差不多,用到了easyUI、bootstrap、MVC框架、搭建的三层,EF映射、MySQL数据库,还有mongoDB,大概就这样
正文:
该模块的需要是根据部门、时间、姓名以及年级(期数)查询数据库中大家相应的“业绩”信息,这个信息是一天一收集,所以必不可少的就需要显示一下日期信息,MySQL数据库中字段类型为datatime,界面查询出来“乱码”,用户友好度太低,所以就上网查,具体查到的东西还是有一些的,但是实验失败,搁置了一段时间,但是问题总要解决,又不能修改字段类型,所以再试一下
代码:
这是用来凑字数的界面代码:
<table id="datagrid" class="easyui-datagrid" title="分总" style="width: 75%; height: 500px;" url="/ClassificationSum/LoadPageForDatagrid"> <thead> <tr> <th data-options="field:'GradeName'" style="width: 120px" align="center">所属期数</th> <th data-options="field:'ClassmateName'" style="width: 120px" align="center">姓名</th> <th data-options="field:'ScoreItem'" style="text-align: right; width: auto" align="center">得分项</th> <th data-options="field:'GetPoint'" style="text-align: right; width: 150px" align="center">分值</th> <th data-options=" field:'FillDate' " align="center" style="text-align: right;width: auto;" align="center" formatter="formatPrice">填写时间 </th> </tr> </thead> </table>
核心代码:function getTime() { 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); } function formatPrice(value) { //获取 /Date(时间戳) 括号中的字符串时间戳 的正则表达式 var pa = /.*\((.*)\)/; var unixtime = value.match(pa)[1].substring(0, 10); return getTime(unixtime); }
就这样就OK了,参考了郑浩大神的这篇博客,博客写的特别好,有技术有思想,内涵满满,但是照葫芦画瓢我是没有成功,请杰哥帮忙,然后就好了,大神的力量是雪亮滴
郑大神是在界面上通过正则获取字符串,偶滴界面比较奇葩所以我就写到了单独的js文件中,formatPrice是一个关键,这里我的命名没有加以规范,本人现在有点懒,命名还是特别特别重要滴,谢谢郑浩大神的分享,杰哥的热心帮助,大家的阅读与评论。
小结:
这是一个比较常见的问题,但是我也是费了一些周折,所以有问题上网查、上网查不行,找大神,想不出来先放下,换个时间可能思路就不一样,思维就打开了,有问题自己解决不了的还是找大神比较好,总有一天、偶也会成为大神,能够分分钟帮别人解决问题
dao时候不要太帅