计算两个时间日期相差的天数、分钟数或者秒数
分类:实例代码
分享一段代码实例,它实现了计算两个时间日期相差的天数等时间差。
代码实例如下:
<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.pipipi.net/" /> <title>前端教程网</title> <style type="text/css"> .st-div { margin: 10px; } input { width: 40px; } h2 { margin-left: 200px; } .result { margin: 10px; } </style> </head> <body> <div class="st-div"> <label for="">从:</label><input id="sy" type="text" value="2012" /><label for="sy">年</label> <input id="sm" type="text" value="03" /><label for="sm">月</label> <input id="sd" type="text" value="01" /><label for="sd">日</label> <span>--</span> <input id="ey" type="text" value="2016" /><label for="ey">年</label> <input id="em" type="text" value="03" /><label for="em">月</label> <input id="ed" type="text" value="23" /><label for="ed">日</label> <button>计算</button> </div> <div class="result"> <label for="">结果:<span id="answer"></span></label> </div> <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script> <script> $('button').on('click', function() { var st = $('#sy').val() + $('#sm').val() + $('#sd').val(); var et = $('#ey').val() + $('#em').val() + $('#ed').val(); var obj = {}; obj = new countDay(st, et); var html = obj.totalDays + '天 ' + obj.totalMins + '分 ' + obj.totalSeconds + '秒'; $('#answer').html(html); }); $('input').on('change', function() { var va = $(this).val() var len = va.length; if (len > 0 && len < 4) { if (va > 0 && va < 10) { $(this).val('0' + va) } } }); /***================================***/ var countDay = function(s, e) { //验证输入的日期正确性 this.startDay = parseInt(s); this.endDay = parseInt(e); this.totalDays = 0; this.startYear = parseInt(s.substring(0, 4)); this.endYear = parseInt(e.substring(0, 4)); this.totalDays = (function() { var total = 0; var sy = parseInt(s.substring(0, 4)); var ey = parseInt(e.substring(0, 4)); var sm = parseInt(s.substring(4, 6)); var em = parseInt(e.substring(4, 6)); var sd = parseInt(s.substring(6)); var ed = parseInt(e.substring(6)); var i = sy; for (; i <= ey; i++) { if (i === sy && i !== ey) { total += countDayByYear(i, 1, sm, sd); } else if (i === ey) { total += countDayByYear(i, 2, em, ed); } else { total += countDayByYear(i, 0); } } return total; })(); this.totalMins = this.totalDays * 60; this.totalSeconds = this.totalMins * 60; return this; }; function countDayByYear(y, flag) { var ydm, s, e, tem = {}; if (!flag) { ydm = 0; s = 1; e = 12; } else if (flag === 1) { var m = arguments[2]; var d = arguments[3]; tem = countDayByMonth(y, m); ydm = tem.days - d + 1; s = m + 1; e = 12; } else if (flag === 2) { var m = arguments[2]; var d = arguments[3]; tem = countDayByMonth(y, m); ydm = d; s = 1; e = m - 1; } for (; s <= e; s++) { tem = countDayByMonth(y, s); if (tem.days !== 0) { ydm += tem.days; } } return ydm; }; function countDayByMonth(m) { var obj = {}, d; if (typeof m !== 'number' || m < 0 || m > 12) { d = 0; obj.errorMesaage = 'wrong type of parameter'; } if (m === 1 || m === 3 || m === 5 || m === 7 || m === 8 || m === 10 || m === 12) { d = 31; } else if (m === 2) { if (y % 4 === 0 && y % 100 !== 0) { d = 29; } else { d = 28; } } else { d = 30; } obj.days = d; return obj; } </script> </body> </html>
计算两个时间日期相差的天数、分钟数或者秒数,这样的场景在实际项目中还是用的比较多的,关于计算两个时间日期相差的天数、分钟数或者秒数就介绍到这了。
计算两个时间日期相差的天数、分钟数或者秒数属于前端实例代码,有关更多实例代码大家可以查看。