ExtJs中日期的格式化处理


ExtJs中,日期的格式化处理棘手问题多出现在grid的展示列中。

 

推荐解决方案:

不要再前端使用js或者extjs提供的格式化函数,在后端处理(比如oracle数据库查询语句中使用to_char格式化或者是用java的SimpleDateFomet函数格式化)为格式化后的字符串,前端只负责显示。

 

前端格式化方案:

一旦需要在前端处理,具体分析如下:

1. 数据库获取日期

通过数据库查询后需要使用ResultSetgetDate()或者是getTimestamp()函数获取日期对象

一定要注意:

getDate()函数获取的是java.sql.Date    --- 是 年-月-日格式的

getTimestamp() 函数获取的是java.sql.Timestamp --- 是年-月-日 时:分:秒 格式

 

2. java日期获取

java需要把数据库获得的java.sql日期转换为另一个java.util日期对象,我们常用的日期类型是java.util.Date(比如我们的POJO,VO,Bean中对象的日期类型)

一定要注意:

java.util.Date   年-月-日 时:分:秒.毫秒 格式

转换后是否包含时分秒,就要看你的数据库获取日期的方式了(如果数据库获取日期用的是getDate(),那绝对不会有时分秒的)

 

3. 前端展示

在extjs中,我们获取到的数据默认都是字符串,默认显示时候:

如果数据库是通过 getDate() 获取都,会显示为  “2012-09-18”  的字符串形式

如果数据库是通过 getTimestamp() 获取都,会显示为 “879561144489” 的数字串形式

 

如何格式化呢

分两种情况

如果数据库是通过 getDate() 获取

renderer:function(value){ 
           return new Date(Date.parse(value.replace(/-/g, "/"))).format("Y年m月d日"); 
}

 

如果数据库是通过 getTimestamp() 获取都
renderer: function(value) {
             return new Date(value).format("Y-m-d H:i:s");
 }

 

---- 他俩的差别就是对字符串转换为日期类型的差别!

注意:前端extjs定义grid的列时候,用默认的type=‘string’,不要使用type="date"

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值