开发工具与关键技术:VS ASP.NET.MVC
作者:冉冉
撰写时间:2019年06月25日
有时候在页面中需要获取到准确的日期然后以年月日(时分秒)这种格式显示在页面上,但是没有经过格式化的日期或者时间并不是以这种格式显示的,它显示的只是一段字符串。
如果时间类型直接使用JSON进行返回就会出现一个问题,如下图:
图1
所以我们要解决这个问题。解决这个问题主要有两个思路,一个是在页面对格式进行处理;另一个是直接在控制器进行处理。
现在写的是直接在控制器对格式进行处理:
首先创建一个实体类,让它继承原表;然后封装原表在的出生日期、出生时间和入学时间。由于要考虑日期在转换类型时有可能会改变,所以直接转为字符串。如下图:
图2
但是这样写不太靠谱,因为get,set这样写之后无法对时间进行转换,所以我们要换一种写法,也就是将简写形式的写法改为标准形式。如下图:
图3
先写private,这是一个私有的变量,用来存放具体的字符串。Get返回正常的那一个,然后要在Set这里对时间进行处理,对日期进行转换。这里有一个默认的变量:value。Value就是在控制器中直接给它赋的值。然后用convert将value传过来的字符串转成DateTime,然后再从DateTime转成字符串(因为要把时间进行格式化)将它格式化为“yyyy-MM-dd(HH:mm:ss)”这种形式。后面的时分秒根据需求使用(可直接使用或者拼接再年月日后面)。
这样,实体类就已经写好了,接下来就可以在控制器中使用。如下图:
图4
运用linq查询来把数据都查询出来,然后将数据进行分页。分页代码如下图:
图5
分页后把数据显示在页面。接下来请看结果:
图6
其实在js格式化时间与在服务端格式化时间的结果是一样的,只是它们的转换方法与转换过程不一样,它们的结果是相同的。
在js格式化时间的话就可以在控制器就可以少写代码;在服务端格式化时间的话在页面就可以少写代码。本质是一样的,总有一个地方要多写些代码,这就要看个人怎么选择了。
在服务端格式化时间到这就已经完成了,如果有地方写得不对或者有其他问题请在评论区评论,我会及时更正的!