在表格中时间的正确处理
开发工具与关键技术:Visual Studio 2015 、在表格中时间的正确处理
作者:袁何恩
撰写时间:2019年6月26日
今天,我要和大家分享的技术是在表格中时间的正确处理。
在作项目时,我们经常在数据表格中遇到过时间的返回值是[object Object]或者是类似/Date(9820556000000)/的数字,这是什么的情况呢?这是因为某个字段的数据类型发生了改变,所以,才会这样。解决这个问题有两个方法,第一个方法是直接在js中格式化时间,也就是在视图中格式化时间,这个方法的代码量较多。第二个方法是直接在服务端格式化时间,这个方法的代码量较少。现在,我给大家演示一下两种方法的使用的方式。
首先,我们经常在项目中,表格中的时间返回值是[object Object]或者是类似/Date(9820556000000)/的数字,也是我现在项目中表格遇到的问题,如图下:
现在,我给大家演示使用第一种时间的处理方法,在直接在js中格式化时间。首先,在视图上的表格代码,作出更改,把{ field:’Flightday’,title:‘飞行时间’}改为{ templet:Flightday,title:‘飞行时间’},是把第一个’ ’去除,field改为templet。Templet是自定义的意思。更改后的代码图如下:
第一种时间的处理方法有两个方面,一个是针对time类型,如某时某分某秒;另一个是针对date类型或datetime类型,如某年某月某日、某年某月某日某时某分某秒。每种类型对时间处理都不一样。我演示一下针对date类型或datetime类型的处理方法,代码图如下:
首先,封装一个方法名为ChangeDateFormat的方法,在用这个方法之前,写上用这个方法的代码,如图上名为Flightday’的方法,用了ChangeDateFormat方法后,传入的数据会被替换“/Date(”、“)/”,再去除数据后面的“+”、“-”,再给它拼接“-”,如果小于10,就给它前面添加“0”。就返回数据了。
我演示一下针对time类型的处理方法,写上名为Flighttime的方法,处理传来的时间,如果小于10,就给它前面添加“0”,声明三个变量,把处理好时间的时、分、秒放进去,在拼接三个变量,回填上表单。代码图和效果图如下:
现在,我给大家演示使用第二种时间的处理方法,在服务端格式化时间,在视图上的代码不变,代码图如下:
在项目里给它封装一个类,一般的写法是pulic string setFlightday { get;set;},我们要考虑到时间传过去之后,时间可能会发生改变,这样我们无法对时间进行转化,先写上private string _setFlightday;_setFlightday是私有的变量,私有的变量存放具体的字符串。“pulic string Birthday{ get;set;}”是get;set;的简写形式,而处理时间的话,需要用到get;set;的标准、完整形式。在pulic string setFlightday { get;set;}里,写上get{ return _ setFlightday };这是返回值。而在set里是在进行时间的处理。接下来是对日期进行转换,需要把字符串转换成dt里面,所以用上Convert里的ToDateTime的方法,处理值;然后,再把dt转换成字符串;用ToString把dt里的时间进行格式化,ToString后面(“ ”)的可以随便写时间格式,我这里是日期的格式;然后,在控制器中调用一下就可以了,代码图如下:
其中value是你在控制器中,给它附的值。这是默认的格式,