fastadmin单元格之间进行时间差计算

 样式:

 位置:public/assets/js/backend/pim/test.js

//实际时间
{field: 'times', title: __('Times')+'('+__('Unit')+')', operate:'RANGE', addclass:'datetimerange', autocomplete:false,
    formatter:function(value,row,index){
        if(row.startdate=='2022-10-10 00:00:00' || row.activitytime=='2022-10-10 00:00:00'){//如果开始实现为默认值
            return __('noset');//未开始或进行中,时间都为未设定,只有结束之后才进行计算
        }
        else{
            //转换为日期的变量
            startdate = new Date(row.startdate.toString());
            activitytime = new Date(row.activitytime.toString());
            if(activitytime-startdate<0){//根据语言库中的信息返回
                return __('Startdate')+__('Or')+__('Activitytime')+__('Error');
            }
            else{
                return ((activitytime-startdate)/(1000*60*60)).toFixed(1);//
          //除1000表示从毫秒转换为秒,*60转换为分钟,*60转换为小时,toFixed表示精确到小数点后一位
            }
        }
    }
},

 语言库:application/admin/lang/zh-cn/pim/test.php

'Startdate'           => '开始日期',
'Activitytime'        => '活动时间(datetime)',
'Times'               => '消耗时间',
'Unit'                => '小时',
'Noset'               => '未设定',
'Or'                  => '或',
'Error'               => '错误',

1、添加时间单元格

2、当开始时间为指定值(未开始)或者结束时间为指定值(未结束),这两种状态,两者差都无法计算,返回单元格值为“为设定”

3、当状态为已完成,即可进行计算,将开始时间与结束时间都转换为日期的变量,为了计算

new Date(row.XXX.toString())

4、错误提示设置:当结束日期大于开始日期,表明数据出错,即返回错误信息

5、正确情况,进行计算:((activitytime-startdate)/(1000*60*60)).toFixed(1);

ctivitytime-startdate表示差值计算

除1000表示从毫秒转换为秒,

第一个*60转换为分钟,

第二个*60转换为小时,

toFixed表示精确到小数点后一位

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值