2 qq 15290009 qq_15290009 于 2016.04.06 14:28 提问

如期改变后 如何计算取值

图片说明

如图片上的一样 标上红框上的都选完后 出现了提取日期 但是我想提取 改变后 在计算出天数出来

图片说明

但是计算不出来 这样能但出来 我想问 这是怎么回事 是我获取的不对吗 下面是代码 代码很多 只贴出来我说的一部分

 //计算截止改变后和起止相差的天数
    function getDays1(){
    var s1 = $("#EntTime32").val();
    var s2 = $("#EntTime31").val();
    var d1 = new Date(s1.replace(/-/g, '/'));
    var d2 = new Date(s2.replace(/-/g, '/'));
    var ms = Math.abs(d2.getTime() - d1.getTime());//毫秒
    var d = ms / 1000 / 60 / 60 / 24;//转为天
    return d;

    }

$("#EntTime31").change(function(){

        var day1 = getDays1();
            alert(day1);

 });

2个回答

showbo
showbo   Ds   Rxr 2016.04.06 15:10
已采纳

提取日期格式错误啊,数字的话传递的就是时间戳(从1970年开始),你要注意判断格式的正确性

     function getDays1() {
        var s1 = $("#EntTime32").val();
        var s2 = $("#EntTime31").val();
        if (!/^\d{4}(-\d{1,2}){2}$/.test(s1) || !/^\d{4}(-\d{1,2}){2}/.test(s2)) return 0;//格式错误直接返回0

        var d1 = new Date(s1.replace(/-/g, '/'));
        var d2 = new Date(s2.replace(/-/g, '/'));
        var ms = Math.abs(d2.getTime() - d1.getTime());//毫秒
        var d = ms / 1000 / 60 / 60 / 24;//转为天
        return d;

    }
qq_15290009
qq_15290009 http://ask.csdn.net/questions/233221 这里有元代码
一年多之前 回复
qq_15290009
qq_15290009 哥 在问你个问题 图片上有说明 图片在下面
一年多之前 回复
qq_15290009
qq_15290009 额 好吧
一年多之前 回复
showbo
showbo vs2013+
一年多之前 回复
showbo
showbo 回复热呛: 自己看日历api或者源代码,dw还做不到能解析js类库给你ide提示这么nb。除非你用的vs2003+
一年多之前 回复
qq_15290009
qq_15290009 onSelect="getDays1" 这样吗 Dw编辑软件没提示 onp这个 只提示了这个 onSelect=""
一年多之前 回复
showbo
showbo 回复热呛: 自己setInterval定时检查值罗。。有更新就执行计算,然后自定义属性更新为当前值,一次循环检查
一年多之前 回复
qq_15290009
qq_15290009 没咋看懂 眼晕 就是配置的话 也是 在 input 这里配置 是吗
一年多之前 回复
qq_15290009
qq_15290009 好像是网上随便找的 我也不知道 不是我弄得 除了这个方法 还有别的吗
一年多之前 回复
showbo
showbo 回复热呛: 我哪懂你用什么日历组件了,我只是给你这些常用的日历的事件。my97的http://my97.net/dp/demo/index.htm
一年多之前 回复
qq_15290009
qq_15290009 额 来个网址
一年多之前 回复
showbo
showbo 回复热呛: 自己看日期API啊,my97配置onpicked,easyui的datebox配置onSelect
一年多之前 回复
qq_15290009
qq_15290009 回复无聊码农: 那怎么解决这个问题 你说的那个我没看懂 有小例子吗
一年多之前 回复
showbo
showbo 回复热呛: 你要给日期添加选择日期事件,$("#EntTime31").change绑定的事件只有手动输入然后blur才会执行,js设置控件的值是不会触发的,不是说了好多次了
一年多之前 回复
qq_15290009
qq_15290009 是不是 没取到啊
一年多之前 回复
qq_15290009
qq_15290009 替换掉了 但是 结果 弹不出来
一年多之前 回复
showbo
showbo 回复热呛: 格式错了,代码是替换xxxx-xx-xx这种格式,你的是点分隔开,要用将点替换也加上new Date(s1.replace(/[\-\.]/g, '/'))
一年多之前 回复
qq_15290009
qq_15290009 什么意思 我没明白 已经有了日历选择的js 就是挂件 我想要的是提取重新再挂件上选择的日期 后触发getDays1() 这个方法 帮我在下面写个小例子 谢谢
一年多之前 回复
qq_15290009
qq_15290009 所以我想吧结果给弹出来 看结果是否对 对 好写下一步 这个网页我这钱也提问过 但是经理有添加了点东西 第二张图片我输入数字 弹出来的东西 说明我写的应该没问题 现在想的是我下面说的那个
一年多之前 回复
qq_15290009
qq_15290009 就比如说 第一张图片上的 提取是日期是 2016.4.13 我用日历挂件 重新选择个 2016.4.25 现在就重新计算出与存入的日期想差多少天 不是第二张图片上的那种输入数字 是日期
一年多之前 回复
showbo
showbo 回复热呛: 自己添加日期选择日期的事件,js设置值是不会触发change事件的
一年多之前 回复
showbo
showbo 回复热呛: 什么alert不出来?你截图输出那么大的数字就是参数格式不对,我这里代码只是验证下数据格式,不会报错
一年多之前 回复
qq_15290009
qq_15290009 他是有日历挂件的 不是自己输入
一年多之前 回复
qq_15290009
qq_15290009 可是 还是alert不出来啊
一年多之前 回复
qq_15290009
qq_15290009   2016.04.07 09:13

图片说明

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!