您的位置:首页 > Web前端 > JavaScript

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
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: