jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数

功能需求如下:

1) 使用 datetimebox 日期控件, 选择开始日期 startdate, 结束日期 leavedate ,然后求两日期间相隔天数 numdays ;

2) 天数 x 补助 = 包干费用; (numdays * allowance = def11 )

下面是效果图:

一. form 表单:开始时间,结束时间两个都使用 onChange 事件;

<td>派遣时间:</td>
<td><input class="easyui-datetimebox" id="startdate" name="startdate" data-options="onChange:onSelectT" /></input></td>
<td>离开客户处时间:</td>
<td><input class="easyui-datetimebox" id="leavedate" name="leavedate" data-options="onChange:onSelectT" /></input></td>
<td>售后所用天数:</td>
<td><input class="easyui-numberbox" id="numdays" name="numdays" data-options="onChange:onSelectT"
  precision="0" min="0" readonly ="readonly"/></input>
</td>
  <td>补助:</td>
<td><input name="allowance" id="allowance" class="easyui-numberbox" precision="0" min="0"></td>
<td>包干费用:</td>
<td><input name="def11" id="def11" class="easyui-numberbox" precision="0" min="0" readonly ="readonly"></td> 

二.计算相隔天数

//计算日期方法:
function onSelectT(d) {
   var sd = $('#startdate').datebox('getValue').replace(/-/g, '/'), ed = $('#leavedate').datebox('getValue').replace(/-/g, '/');
   if (sd != '' && ed != '') {
    if (sd > ed) {
    $.messager.alert('警告','结束时间要 大于 开始时间','warning');
     } else {
     var totalMS = new Date(ed).getTime() - new Date(sd).getTime();//得到相差的毫秒数
      day = Math.ceil(totalMS / 1000 / 24 / 60 / 60);//得到相差天数,不满一天不算一天将Math.ceil改为Math.floor
      $("#numdays").numberbox("setValue", day); //所用天数 */
      }
   }
   } 

三.计算费用

$(function() { 

 //(根据 售后天数 *补助)计算包干费用
 $("input",$("#allowance").next("span")).blur(function(){//鼠标离开 '补助' 栏后,触发
 var adays =$("#numdays").numberbox('getValue');//天数
 var abz =$("#allowance").numberbox('getValue');//补助
 var abaogan = adays * abz;//(售后天数*补助=包干费用)
 $("#def11").numberbox('setValue', abaogan);//包干费用
 });
  }) 

接下来是应用 (一些需要注意的细节):

(1)定义全局变量 day

var day = 0;//默认为 day = 0

(2)添加方法();

function addMethod() {
  initialise(); //调用初始化函数
  onSelectT();//计算相隔时间天数
  day = 0;// .form("clear");方法不能成功清除上次缓存。所以在添加方法中重新声明 day = 0,作用是第二次点击添加时,将上次的天数重置为 0 天,
<span style="white-space:pre"> </span>替代 .form("clear");
   $('#editWindow').dialog('open').dialog('center').dialog('setTitle', '添加派遣单信息');
   $('#eidtform').form("clear");
  $("#allowance").numberbox("setValue", 0); //补助
  $("#numdays").numberbox("setValue", 0); //添加默认塞值 (所用天数)
  $("#def11").numberbox("setValue", 0); //包干费用
  $('#editWindow').window("open");
 } 

以上所述是小编给大家介绍的jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • jQuery EasyUI API 中文文档 - DateBox日期框

    扩展自 $.fn.combo.defaults.用 $.fn.datebox.defaults 重写了 defaults. 依赖 combo calendar 用法 复制代码 代码如下: <input id="dd" type="text"></input> 复制代码 代码如下: $('#dd').datebox({ required:true }); 特性 其特性扩展自 combo,下列是为 datebox 增加的特性. 名称 类型 说明

  • EasyUI修改DateBox和DateTimeBox的默认日期格式示例

    最近整理Easyui控件的时候,对Easyui的DateBox控件和DateTimeBox控件进行了梳理,而我之所以将EasyUI的DateBox控件和DateTimeBox控件放在一起,归为一类,是因为这两个控件没有什么区别,如果你非得说这两个控件有区别,也无非是DateTimeBox控件后面除了基本的年月日之外带上了小时或者分钟或者秒什么的,更何况,这两个控件在进行日期格式化时所采用的方法也是一样的. DateBox介绍: Demo实例参看:http://www.jeasyui.com/de

  • JQuery EasyUI 日期控件如何控制日期选择区间

    复制代码 代码如下: <tr><th>发售起始日期</th> <td><input type="text" id="usLineTime" name="usLineTime" size="20" class='easyui-validatebox Wdate' onFocus="WdatePicker({el:'usLineTime',dateFmt:'yyyy-

  • jQuery EasyUI API 中文文档 DateTimeBox日期时间框

    扩展自 $.fn.datebox.defaults.用 $.fn.datetimebox.defaults 重写了 defaults. 依赖 datebox timespinner 用法 复制代码 代码如下: <input id="dt" type="text"></input> 复制代码 代码如下: $('#dt').datetimebox({ showSeconds:false }); 特性 其特性扩展自 datebox,下列是为 dat

  • jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数

    功能需求如下: 1) 使用 datetimebox 日期控件, 选择开始日期 startdate, 结束日期 leavedate ,然后求两日期间相隔天数 numdays ; 2) 天数 x 补助 = 包干费用; (numdays * allowance = def11 ) 下面是效果图: 一. form 表单:开始时间,结束时间两个都使用 onChange 事件; <td>派遣时间:</td> <td><input class="easyui-date

  • Python+SeaTable实现计算两个日期间的工作日天数

    目录 在 SeaTable 表格上新建 Python 脚本 思路 代码 总结 当我们计算两个日期间的间隔天数时,通常是用结束日期减去开始日期,但在实际的项目管理.任务管理.工作计划等场景中,某些时间段会涉及双休日.法定节假日,甚至还有公司自定义的工作时间安排,所以就需要计算出两个日期间的实际工作日天数.比如一个表格中有多条任务,每条任务都有各自的开始日期.计划结束日期或实际结束日期,那么如何自动计算出两个日期间的实际工作日天数,以便做到精细和量化呢. 此时,万能的 Python 就可以出场了,而

  • js中 计算两个日期间的工作日的简单实例

    实例如下: //起始日期,/pattern/是正则表达式的界定符,pattern是要匹配的内容,只用于第一个符号的匹配,g为全局匹配标志 var beginDate = new Date("2013-01-01".replace(/-/g, "/")); //结束日期 var endDate = new Date("2013-01-31".replace(/-/g, "/")); //日期差值,即包含周六日.以天为单位的工时,

  • js计算两个日期间的天数月的实例代码

    计算结果为几个月零几天 <html> <head> <title>计算天数月</title> <meta charset="GBK"> <script type="text/javascript"> function dateU(date1,date2){//date2-date1 var y1=Number(date1.substr(0,4));//年 var y2=Number(date2.

  • C++实现两个日期间差多少天的解决方法

    计算原理是先求出每个日期距离1年1月1日的天数差值,再进一步做差即可. 复制代码 代码如下: #include <stdio.h>struct MyDate{ int year; int month; int day;}; int GetAbsDays(MyDate x){ int i; int month_day[] = {31,28,31,30,31,30,31,31,30,31,30,31}; int year = x.year-1;  // 因为欲求距离1年1月1日的距离 int da

  • PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)

    方法一: 在php中,抓取https的网站,提示如下的错误内容: Warning: file_get_contents() [function.file-get-contents]: failed to open stream: Invalid argument in I:Webmyphpa.php on line 16 打开php.ini文件找到 ;extension=php_openssl.dll ,去掉双引号";" ,重启web服务器即可. apache服务器的话,可以同时启用m

  • Java中的Random()函数及两种构造方法

    Java中存在着两种Random函数: java.lang.Math.Random; 调用这个Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0)的左闭右开区间,返回值是一个伪随机选择的数,在该范围内(近似)均匀分布. java.util.Random 下面Random()的两种构造方法: Random():创建一个新的随机数生成器. Random(long seed):使用单个 long 种子创建一个新的随机数生成器. 我

  • vue-router中的hash和history两种模式的区别

    众所周知,vue-router有两种模式,hash模式和history模式,这里来谈谈两者的区别. hash模式 hash模式背后的原理是onhashchange事件,可以在window对象上监听这个事件: window.onhashchange = function(event){ console.log(event.oldURL, event.newURL); let hash = location.hash.slice(1); document.body.style.color = has

  • 在python中bool函数的取值方法

    bool是Boolean的缩写,只有真(True)和假(False)两种取值 bool函数只有一个参数,并根据这个参数的值返回真或者假. 1.当对数字使用bool函数时,0返回假(False),任何其他值都返回真. >>> bool(0) False >>> bool(1) True >>> bool(-1) True >>> bool(21334) True 2.当对字符串使用bool函数时,对于没有值的字符串(也就是None或者空

  • 详解Java中Math.round()的取整规则

    做Java的面试题时遇到了以下这题,百度了一下Math.round()的修约规则,有的说是四舍五入,有的说是四舍六入,发现和我学分析化学时用的数字修约规则(四舍六入五成双)很像,所以验证一下: 原题:Math.round(11.5) 等于多少?Math.round(-11.5)等于多少? 作者给的解题方法如下: 答:Math.round(11.5)的返回值是12,Math.round(-11.5)的返回值是-11.四舍五入的原理是在参数上加0.5然后进行下取整. 先说结论,题目作者给的解释是对的

随机推荐