javascript 实现两个标准时间差几天
2015-11-30 10:46
483 查看
var _ = require("lodash"); var subDay = function (dateTime) { var self = { year: 1970, month: 1, day: 1, hour: 0, minute: 0, second: 0 }; var optTime = { year: dateTime.getFullYear(), month: dateTime.getMonth() + 1, day: dateTime.getDate(), hour: dateTime.getHours(), minute: dateTime.getMinutes(), second: dateTime.getSeconds() }; var _days = 0; var _selfBigger = false; if (self.year > optTime.year) { _selfBigger = true; } else if (self.year == optTime.year) { if (self.month > optTime.month) { _selfBigger = true; } else if (self.month == optTime.month) { if (self.day > optTime.day) { _selfBigger = true; } else if (self.day == optTime) { return 0; } } } var _bigDate = _.clone(self); var _smallDate = _.clone(self); if (_selfBigger == true) { _bigDate.year = self.year; _bigDate.month = self.year; _bigDate.day = self.day; _smallDate.year = optTime.year; _smallDate.month = optTime.month; _smallDate.day = optTime.day; } else { _bigDate.year = optTime.year; _bigDate.month = optTime.month; _bigDate.day = optTime.day; _smallDate.year = self.year; _smallDate.month = self.month; _smallDate.day = self.day; } for (var i = _smallDate.year; i <= _bigDate.year - 1; i++) { if (((i % 4 == 0) && (i % 100 == 0)) || (i % 400 == 0)) { _days = _days + 366; } else { _days = _days + 365; } } for (var _i = 1; _i <= _smallDate.month - 1; _i++) { if (_i == 1 || _i == 3 || _i == 5 || _i == 7 || _i == 8 || _i == 10 || _i == 12) { _days = _days - 31; } else if (_i == 4 || _i == 6 || _i == 9 || _i == 11) { _days = _days - 30 } else if (_i == 2) { if ((_smallDate.year % 4 == 0 && _smallDate.year % 100 != 0) || (_smallDate.year % 400 == 0 )) { _days = _days - 29 } else { _days = _days - 28 } } } _days = _days - _smallDate.day; for (var _i = 1; _i <= _bigDate.month - 1; _i++) { if (_i == 1 || _i == 3 || _i == 5 || _i == 7 || _i == 8 || _i == 10 || _i == 12) { _days = _days + 31; } else if (_i == 4 || _i == 6 || _i == 9 || _i == 11) { _days = _days + 30; } else if (i == 2) { if ((_bigDate.year % 4 == 0 && _bigDate.year % 100 != 0) || (_bigDate.year % 400 == 0)) { _days = _days + 29; } else { _days = _days + 28; } } } _days = _days + _bigDate.day; return _days };
相关文章推荐
- javascript作用域链(Scope Chain)用法实例解析
- JavaScript学习(2)
- js封装下拉框,实现重复利用
- 最精简的js代码,实现checkbox,全选、反选、过滤disabled
- javascript针对cookie的基本操作实例详解
- JavaScript中事件处理
- js显示当前系统时间+星期几
- 在JS中获取页面提交参数
- js调用手机摄像头
- javascript闭包(Closure)用法实例简析
- 浏览器JS脚本
- 详解JavaScript的流程控制语句
- java & javascript 自定义加密数据传输
- java & javascript 自定义加密数据传输
- JS日期时间增加减少
- 详解JavaScript的表达式与运算符
- js屏蔽回车键事件
- javaScript学习(1)
- 7个常见Javascript框架介绍
- typeahead.js几个demo