以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- js脚本日期差值 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=99875) |
-- 作者:fubblyc -- 发布时间:2017/4/28 14:51:00 -- js脚本日期差值 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 - 实际时间 //这段是不对的,日期差值。找了网上很多资料,一直没找到方法。 } [此贴子已经被作者于2017/4/28 14:51:51编辑过]
|
-- 作者:有点色 -- 发布时间:2017/4/28 15:00:00 -- 写个函数来用
function getDays(strDateStart,strDateEnd){
这样调用 var i = getDays("2012-12-01","2012-12-25"); alert(i); |
-- 作者:fubblyc -- 发布时间:2017/4/28 15:14:00 -- 哦,是写函数啊。。。我还一直以为是脚本。我试试。。。 [此贴子已经被作者于2017/4/28 15:17:28编辑过]
|
-- 作者:fubblyc -- 发布时间:2017/4/28 15:21:00 -- 老师, i 要怎么调用呢。。。 FT 里的代码: With .AddInput("实际完成时间","完成时间","text") .Attribute = "on change=\'getDays()\'" End With var i = getDays(实际完成时间.value,计划完成日期.value); 差异.value = i [此贴子已经被作者于2017/4/28 15:27:48编辑过]
|
-- 作者:有点色 -- 发布时间:2017/4/28 15:26:00 --
var i = getDays(document.getElementById("实际完成时间").value, document.getElementById("计划完成时间").value); alert(i); |
-- 作者:fubblyc -- 发布时间: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编辑过]
|
-- 作者:有点色 -- 发布时间:2017/4/28 15:58:00 -- 1、2楼的函数照抄写到你的js文件去;
2、你原来的处理函数calc里面,调用代码
var i = getDays(document.getElementById("实际完成时间").value, document.getElementById("计划完成日期").value); |
-- 作者:fubblyc -- 发布时间: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 |
-- 作者:有点色 -- 发布时间:2017/4/28 16:28:00 -- 弹出值看看,应该是你id的值写错了。
实际完成时间.value = curDate.getFullYear()+"-"+(curDate.getMonth()+1)+"-"+curDate.getDate(); |
-- 作者:fubblyc -- 发布时间:2017/4/28 16:37:00 -- 可以了,谢谢谢谢!!!!!! |