EasyUI 的DataGrid中DateTime的格式化问题

转载自 博客园 晓镜水月的博客 

EasyUI 的DataGrid中DateTime的格式化问题

想必用过EasyUI的朋友们都应该会遇到这样的情况吧:(下图)

image

在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);
                        }
                    },
复制代码

按照上面的写法,应该是没问题的了,于是再次运行效果图如下:

image

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

image

图中可以看到基本就是unix时间戳,只是后面多了几个数字,不懂到底是什么,不过竟然那么接近的话,我直接把它后面的几个截去不就行了吗,最后发现这个方法的确可行/嘻嘻~~~~,于是最后的DataGrid的格式化器便这样写了

formatter: function (date) {
                            var pa = /.*\((.*)\)/;
                            var unixtime = date.match(pa)[1].substring(0,10);
                            return getTime(unixtime);
                        }

通过substring来截取前面的10个数字,组成的字符串便是我们想要的unix时间戳了,阴差阳错,竟然就这么给我答对了,于是结果便成了我们想要的时间数据

image

尽管处理方法还有很多,这是只是我想到的处理方法,也不是很复杂,现在的EasyUI应该是能够智能的做到这一步了吧,上面过去getTime的js函数,可以通过Extend扩张到jquery中使用,这样就不需要再每个使用到这个方法的页面都写一次,重构了代码,希望这里的这个能帮到一些也遇到这种情况的朋友一点点提示。


<think>好的,我现在要回答用户关于如何在Spring Cloud中使用Bootstrap配置文件的问题。首先,我需要回忆一下相关的知识,并参考用户提供的引用内容。 根据引用[2]和[3],bootstrap.yml在Spring Cloud中用于特定的配置场景,比如配置中心的连接参数,这些需要在应用上下文加载之前就准备好。用户可能需要知道如何正确创建和配置这个文件。 接下来,我需要整理步骤。首先,创建bootstrap.yml文件,放在资源目录下。然后,配置必要的信息,如应用名称、配置中心的地址等。这里需要举例说明,比如Nacos的配置,如引用[1]中的例子。同时,还要提到配置的加载顺序,即bootstrap.yml优先于application.yml,这点在引用[2]中有提到。 然后,用户可能需要知道如何激活不同的环境配置。引用[3]提到与环境相关的属性,比如使用spring.profiles.active来激活不同的profile,这部分需要解释清楚,并给出示例。 另外,还需要说明使用场景,比如配置中心、服务发现等,这部分引用[3]和[4]可以作为支持。同时,注意提醒用户Spring Cloud 2020版本后的变化,可能需要额外依赖,这点可能不在提供的引用中,但根据我的知识,应该补充说明,避免用户遇到问题。 最后,生成相关问题,需要围绕Bootstrap配置的使用场景、配置区别、多环境配置等,参考用户之前的例子来设计问题。</think>### Spring CloudBootstrap配置文件的使用方法 #### 1. 配置文件创建 在Spring Cloud项目中创建`bootstrap.yml`(或`bootstrap.properties`)文件,需满足以下要求: - 位置:`src/main/resources`目录下 - 命名规范:必须为`bootstrap.yml`(优先于`application.yml`加载)[^2] #### 2. 核心配置内容 ```yaml spring: application: name: order-service # 必须配置的服务标识 cloud: nacos: config: server-addr: 127.0.0.1:8848 # 配置中心地址 namespace: dev-environment # 环境隔离标识 file-extension: yaml # 配置文件格式 config: enabled: true # 启用配置中心功能 ``` #### 3. 多环境配置激活 通过`spring.profiles.active`指定运行环境: ```yaml spring: profiles: active: prod # 激活生产环境配置 ``` #### 4. 典型应用场景 - **配置中心连接**:配置中心地址/密钥等需要优先加载的参数[^1] - **服务注册发现**:注册中心地址等基础设施配置[^3] - **加密配置**:需在应用启动前加载的加密密钥 - **全局配置**:跨多个应用的公共配置 #### 5. 版本适配说明 Spring Cloud 2020版本后需添加依赖: ```xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency> ``` ### 配置加载顺序示意图 $$ \text{Bootstrap配置} \rightarrow \text{Application配置} \rightarrow \text{Profile特定配置} $$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值