在我们做项目的时候,会遇到的一些问题,就是有我们查询出来数据的时候,我们会发现有一些数据并不是我们数据库里的数据,而是通过什么来进行计算出来的。我在做项目的时候遇到了一个时间之间的计算问题,下面我给大家来讲一下我是如何解决的:
下图是我初始化表格的表头数据信息,在表头数据里,故障历时是计算出来的,它等于结束时间减去开始时间得出来的。
我们可以在页面上的初始化那里用自定义列来进行计算,下面我们来看页面上的代码:
一开始我们要创建两个日期对象来接受我查出来的结束时间和开始时间,然后我们通过javascript里的Math对象来进行计算,并且我让它返回来一个绝对值,接着我们申请一个变量来接受我们计算出来相差的天数,然后我们让返回来的绝对值除于(24*60*60*1000),这样我们就算出来相差的天数了,接着再用Math对象方法里的floor来进行对结果进行一个下舍入。最后就是让它进行拼接,然后在返回我们拼接的那个字符串就可以了。
下面请看效果图:
这样的话,接下来就会有一个问题就是我们导出或者打印的时候,故障历时就会没有数据的,下面我来讲另一个方法,也就是我们可以在控制器里让它计算出来相差的天数,首先我们需要的就是要申请一个字符串等于空,然后我们就需要把我们查询出来的结束和开始时间来进行强制转化成Datetime类型,接着我们需要用到TimeSpan,这个单词表示一个时间间隔,然后我们让它等于结束时间减去开始时间的结果,接着就是我们需要来申请一个double类型的变量来接受我们获取到的天数部分,表示当前TimeSpan结构的值,最后就是进行拼接,然后再赋值,让故障历时的字段等于我拼接好的字段就可以了。
下面请看代码部分:
下面请看查询出的数据效果图: