自动计算预计工时

需求:根据预计开始时间和预计截止日期计算预计工时自动填入上图输入框,一天算作8个工时。 

实现:

/**
 * 根据预计开始日期和截止日期自动填写预计工时,一天当作8个工时
 */
$(function(){
    $('#deadline').change(function(){
        var endTime = $(this).val();
        var beginTime = $('#estStarted').val();
        if (beginTime && endTime ){
            beginTime = toDate(beginTime);
            endTime = toDate(endTime)
            var difDays = (endTime.getTime() - beginTime.getTime())/(1000 * 3600 * 24);
            var estimate = difDays*8;
            $('#estimate').val(estimate)
        }
    })
});

/**
 * 开始时间或者截止时间变更都需要重新计算预计工时
 */
$(function(){
    $('#estStarted').change(function(){
        var endTime = $('#deadline').val();
        var beginTime = $(this).val();
        if (beginTime && endTime ){
            beginTime = toDate(beginTime);
            endTime = toDate(endTime)
            var difDays = (endTime.getTime() - beginTime.getTime())/(1000 * 3600 * 24);
            var estimate = difDays*8;
            $('#estimate').val(estimate)
        }
    })
});

/**
 * 将"2021-1-04"这种格式的字符串转换成日期格式
 * @param s
 * @returns {Date}
 */
function toDate(s){
    var arr = s.split("-");
    var date = new Date(arr[0],parseInt(arr[1]),arr[2]);
    return date;
}

拿到两个日期的值,因为是String类型所以需要用toDate(s)方法转成Date类型,再利用Date的getTime()方法进行预计工时的换算。

最后根据禅道的扩展方法,再task模块的ext文件夹下面创建js.create文件夹,再创建一个放入扩展代码的js文件即可。 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值