onchange事件 + 时间处理
@Html.TextBoxFor(x => x.Shebei.Shebeitianjiashijian, "{0:yyyy-MM-dd HH:mm:ss}", htmlAttributes: new { @class = "form-control", @readonly = "readonly" })@Html.DropDownListFor(x => x.Shebei.Weihuzhouqi, Model.ShebeibaoyangzhouqiList, htmlAttributes: new { @class = "form-control" })@Html.TextBoxFor(x => x.Shebei.Daoqishijian, htmlAttributes: new { @class = "form-control" })
根据生产日期 + 维护周期月 计算的出维护到期时间
这段代码实现了一个设备维护周期和设备到期日的计算和更新功能。具体来说,它的实现过程如下:
1. 获取设备添加时间文本框元素和维护周期下拉框元素。
2. 给维护周期下拉框元素绑定 `onchange` 事件,该事件会在下拉框的值发生变化时被触发。
3. 在 `onchange` 事件处理函数中,首先获取当前选择的维护周期,即 `weihuzhouqiValue = parseInt(this.value)`。
4. 然后获取设备添加时间,即 `shebeitianjiashijianValue = new Date(shebeitianjiashijian.value)`。
5. 根据维护周期和设备添加时间计算出新的到期时间,即 `daoqishijian = new Date(shebeitianjiashijianValue.getTime() + weihuzhouqiValue * 30 * 24 * 60 * 60 * 1000)`,其中 `weihuzhouqiValue * 30 * 24 * 60 * 60 * 1000` 表示将维护周期转换为毫秒数。
6. 将新的到期时间格式化为 `yyyy-MM-dd` 格式,即 `formatted = daoqishijian.getFullYear() + "-" + (daoqishijian.getMonth() < 9 ? "0" : "") + (daoqishijian.getMonth() + 1) + "-" + (daoqishijian.getDate() < 10 ? "0" : "") + daoqishijian.getDate()`。
7. 将计算后的到期时间赋值给到期日文本框,即 `document.getElementById("Shebei_Daoqishijian").value = formatted`。
总之,这段代码通过监听维护周期下拉框的变化,实时计算设备的到期日,并更新到到期日文本框中,从而方便用户查看设备的维护状态。
将维护周期转换为毫秒数是因为在 javascript 中,`Date` 对象中的时间是以毫秒为单位表示的。而在计算新的到期时间时,需要用到设备添加时间和维护周期的时间差,因此需要将维护周期转换为毫秒数,以便进行时间的加减计算。
具体来说,`weihuzhouqiValue * 30 * 24 * 60 * 60 * 1000` 表示将维护周期的月数乘以每个月的天数(30),再乘以每天的小时数(24),再乘以每小时的分钟数(60),再乘以每分钟的秒数(60),最后再乘以每秒的毫秒数(1000),从而得到维护周期对应的毫秒数。这样,就可以将维护周期的时间差转换为毫秒数,以便进行时间的加减计算。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
