Foxtable(狐表)用户栏目专家坐堂 → js脚本日期差值


  共有1951人关注过本帖树形打印复制链接

主题:js脚本日期差值

帅哥哟,离线,有人找我吗?
fubblyc
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
js脚本日期差值  发帖心情 Post By:2017/4/28 14:51:00 [只看该作者]

js代码:
获取服务器时间:
function calc(){
var xhr = null;
if(window.XMLHttpRequest){
xhr = new window.XMLHttpRequest();
}else{
xhr = new ActiveObject("Microsoft")
}

xhr.open("GET","/",false)
xhr.send(null);
var time = xhr.getResponseHeader("Date");
var curDate = new Date(time);

实际时间.value = curDate.getFullYear()+"-"+(curDate.getMonth()+1)+"-"+curDate.getDate();   //得到的数据:2017-4-28
}

差异.value = 预计日期.value - 实际时间      //这段是不对的,日期差值。找了网上很多资料,一直没找到方法。 
}


图片点击可在新窗口打开查看此主题相关图片如下:微信截图
_20170428145015.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2017/4/28 14:51:51编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/28 15:00:00 [只看该作者]

 写个函数来用

 

function getDays(strDateStart,strDateEnd){
   var strSeparator = "-"; //日期分隔符
   var oDate1;
   var oDate2;
   var iDays;
   oDate1= strDateStart.split(strSeparator);
   oDate2= strDateEnd.split(strSeparator);
   var strDateS = new Date(oDate1[0], oDate1[1]-1, oDate1[2]);
   var strDateE = new Date(oDate2[0], oDate2[1]-1, oDate2[2]);
   iDays = parseInt(Math.abs(strDateS - strDateE ) / 1000 / 60 / 60 /24)//把相差的毫秒数转换为天数
   return iDays ;
}

 

这样调用

var i = getDays("2012-12-01","2012-12-25");

alert(i);


 回到顶部
帅哥哟,离线,有人找我吗?
fubblyc
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2017/4/28 15:14:00 [只看该作者]

哦,是写函数啊。。。我还一直以为是脚本。我试试。。。



[此贴子已经被作者于2017/4/28 15:17:28编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
fubblyc
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2017/4/28 15:21:00 [只看该作者]

老师,  i 要怎么调用呢。。。
FT 里的代码:
      With  .AddInput("实际完成时间","完成时间","text")
             .Attribute = "on change='getDays()'"
      End With


图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20170428151320.png
图片点击可在新窗口打开查看

var i = getDays(实际完成时间.value,计划完成日期.value);
差异.value = i

[此贴子已经被作者于2017/4/28 15:27:48编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/28 15:26:00 [只看该作者]

 

var i = getDays(document.getElementById("实际完成时间").value, document.getElementById("计划完成时间").value);

alert(i);


 回到顶部
帅哥哟,离线,有人找我吗?
fubblyc
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2017/4/28 15:32:00 [只看该作者]

function getDays(strDateStart,strDateEnd){
   var strSeparator = "-"; //日期分隔符
   var oDate1;
   var oDate2;
   var iDays;
   oDate1= strDateStart.split(strSeparator);
   oDate2= strDateEnd.split(strSeparator);
   var strDateS = new Date(oDate1[0], oDate1[1]-1, oDate1[2]);
   var strDateE = new Date(oDate2[0], oDate2[1]-1, oDate2[2]);
   iDays = parseInt(Math.abs(strDateS - strDateE ) / 1000 / 60 / 60 /24)//把相差的毫秒数转换为天数
   return iDays ;
var i = getDays(document.getElementById("实际完成时间").value, document.getElementById("计划完成日期").value);
document.getElementById("差异").value = i    这两句要写在}里面吗?不知道要怎么调用
}
[此贴子已经被作者于2017/4/28 15:32:25编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/28 15:58:00 [只看该作者]

1、2楼的函数照抄写到你的js文件去;

 

2、你原来的处理函数calc里面,调用代码

 

var i = getDays(document.getElementById("实际完成时间").value, document.getElementById("计划完成日期").value);
document.getElementById("差异").value = i


 回到顶部
帅哥哟,离线,有人找我吗?
fubblyc
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2017/4/28 16:17:00 [只看该作者]

这样吗?实际完成时间有显示,差异就没有反应
js代码:
function getDays(strDateStart,strDateEnd){
   var strSeparator = "-"; //日期分隔符
   var oDate1;
   var oDate2;
   var iDays;
   oDate1= strDateStart.split(strSeparator);
   oDate2= strDateEnd.split(strSeparator);
   var strDateS = new Date(oDate1[0], oDate1[1]-1, oDate1[2]);
   var strDateE = new Date(oDate2[0], oDate2[1]-1, oDate2[2]);
   iDays = parseInt(Math.abs(strDateS - strDateE ) / 1000 / 60 / 60 /24)//把相差的毫秒数转换为天数
   return iDays ;
}

function calc(){
var xhr = null;
if(window.XMLHttpRequest){
xhr = new window.XMLHttpRequest();
}else{
xhr = new ActiveObject("Microsoft")
}

xhr.open("GET","/",false)
xhr.send(null);
var time = xhr.getResponseHeader("Date");
var curDate = new Date(time);

实际完成时间.value = curDate.getFullYear()+"-"+(curDate.getMonth()+1)+"-"+curDate.getDate();
var i = getDays(document.getElementById("实际完成时间").value, document.getElementById("计划完成日期").value);
document.getElementById("差异").value = i
}

FT代码:
    With wb.AddInputGroup("form1","ipg1","完成情况")
      With  .AddSwitch("是否完成","是否完成")
              .Attribute = "on change='calc()'"
     End With

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/28 16:28:00 [只看该作者]

 弹出值看看,应该是你id的值写错了。

 

实际完成时间.value = curDate.getFullYear()+"-"+(curDate.getMonth()+1)+"-"+curDate.getDate();
alert(document.getElementById("实际完成时间").value);
alert(document.getElementById("计划完成日期").value);

var i = getDays(document.getElementById("实际完成时间").value, document.getElementById("计划完成日期").value);
document.getElementById("差异").value = i


 回到顶部
帅哥哟,离线,有人找我吗?
fubblyc
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2017/4/28 16:37:00 [只看该作者]

可以了,谢谢谢谢!!!!!!

 回到顶部