You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
315 lines
6.6 KiB
315 lines
6.6 KiB
function formatTime2(date) {
|
|
var year = date.getFullYear()
|
|
var month = date.getMonth() + 1
|
|
var day = date.getDate()
|
|
|
|
var hour = date.getHours()
|
|
var minute = date.getMinutes()
|
|
var second = date.getSeconds()
|
|
|
|
|
|
return [year, month, day].map(formatNumber).join('-')
|
|
}
|
|
|
|
function dateAddDays(date) {
|
|
date = date.replace(/\-/g, '\/'); //日期参数 格式new Date("2017/09/12")所有浏览器都兼容,new Date("2017-09-12") 部分IE不兼容
|
|
var dd = new Date(date);
|
|
dd.setDate(dd.getDate() + 1);
|
|
var year = dd.getFullYear();
|
|
var m = dd.getMonth() + 1; //获取当前月份的日期
|
|
var d = dd.getDate();
|
|
var mon = (m < 10) ? ('0' + m) : ('' + m);
|
|
var day = (d < 10) ? ('0' + d) : ('' + d);
|
|
return year + "-" + mon + "-" + day;
|
|
}
|
|
|
|
function dateAddDayz(date) {
|
|
date = date.replace(/\-/g, '\/'); //日期参数 格式new Date("2017/09/12")所有浏览器都兼容,new Date("2017-09-12") 部分IE不兼容
|
|
var dd = new Date(date);
|
|
dd.setDate(dd.getDate() - 1);
|
|
var year = dd.getFullYear();
|
|
var m = dd.getMonth() + 1; //获取当前月份的日期
|
|
var d = dd.getDate();
|
|
var mon = (m < 10) ? ('0' + m) : ('' + m);
|
|
var day = (d < 10) ? ('0' + d) : ('' + d);
|
|
return year + "-" + mon + "-" + day;
|
|
|
|
return pdate;
|
|
}
|
|
|
|
function dateDiffIncludeToday(startDateString, endDateString) {
|
|
var oDate1 = new Date(startDateString);
|
|
var oDate2 = new Date(endDateString);
|
|
if (oDate1.getTime() > oDate2.getTime()) {
|
|
return 1;
|
|
} else {
|
|
return 2;
|
|
}
|
|
}
|
|
|
|
function jianDate(date, days) {
|
|
var d = new Date(date);
|
|
d.setDate(d.getDate() - days);
|
|
var m = d.getMonth() + 1;
|
|
return d.getFullYear() + '-' + m + '-' + d.getDate();
|
|
}
|
|
|
|
function formatTime(time) {
|
|
if (typeof time !== 'number' || time < 0) {
|
|
return time
|
|
}
|
|
|
|
var hour = parseInt(time / 3600)
|
|
time = time % 3600
|
|
var minute = parseInt(time / 60)
|
|
time = time % 60
|
|
var second = time
|
|
|
|
return ([hour, minute, second]).map(function(n) {
|
|
n = n.toString()
|
|
return n[1] ? n : '0' + n
|
|
}).join(':')
|
|
}
|
|
|
|
function formatLocation(longitude, latitude) {
|
|
if (typeof longitude === 'string' && typeof latitude === 'string') {
|
|
longitude = parseFloat(longitude)
|
|
latitude = parseFloat(latitude)
|
|
}
|
|
|
|
longitude = longitude.toFixed(2)
|
|
latitude = latitude.toFixed(2)
|
|
|
|
return {
|
|
longitude: longitude.toString().split('.'),
|
|
latitude: latitude.toString().split('.')
|
|
}
|
|
}
|
|
|
|
function formatDate(date) {
|
|
var year = date.getFullYear()
|
|
var month = date.getMonth() + 1
|
|
var day = date.getDate()
|
|
|
|
// if (date.getHours() >= 24) {
|
|
// day = date.getDate()+24
|
|
// }
|
|
|
|
return [year, month, day].map(formatNumber).join('-')
|
|
}
|
|
|
|
function adddate(date, num) {
|
|
var dd = new Date(date);
|
|
dd.setDate(dd.getDate() + num); //获取AddDayCount天后的日期
|
|
var y = dd.getFullYear();
|
|
var m = dd.getMonth() + 1; //获取当前月份的日期
|
|
var d = dd.getDate();
|
|
return y + '-' + (m < 10 ? '0' + m : m) + '-' + d
|
|
}
|
|
|
|
function formatNumber(n) {
|
|
n = n.toString()
|
|
return n[1] ? n : '0' + n
|
|
}
|
|
|
|
|
|
//判断两个日期间隔
|
|
function comparedate(sDate, eDate){
|
|
var sdate = new Date(sDate);
|
|
var edate = new Date(eDate);
|
|
var comp = Math.abs(sdate.getTime() - edate.getTime());
|
|
return Math.floor(comp/86400000);
|
|
}
|
|
// 农历日期
|
|
var lunar = {
|
|
tg: '甲乙丙丁戊己庚辛壬癸',
|
|
dz: '子丑寅卯辰巳午未申酉戌亥',
|
|
number: '一二三四五六七八九十',
|
|
year: '鼠牛虎兔龙蛇马羊猴鸡狗猪',
|
|
month: '正二三四五六七八九十冬腊',
|
|
monthadd: [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],
|
|
calendar: [
|
|
0xa4b,
|
|
0x5164b,
|
|
0x6a5,
|
|
0x6d4,
|
|
0x415b5,
|
|
0x2b6,
|
|
0x957,
|
|
0x2092f,
|
|
0x497,
|
|
0x60c96,
|
|
0xd4a,
|
|
0xea5,
|
|
0x50da9,
|
|
0x5ad,
|
|
0x2b6,
|
|
0x3126e,
|
|
0x92e,
|
|
0x7192d,
|
|
0xc95,
|
|
0xd4a,
|
|
0x61b4a,
|
|
0xb55,
|
|
0x56a,
|
|
0x4155b,
|
|
0x25d,
|
|
0x92d,
|
|
0x2192b,
|
|
0xa95,
|
|
0x71695,
|
|
0x6ca,
|
|
0xb55,
|
|
0x50ab5,
|
|
0x4da,
|
|
0xa5b,
|
|
0x30a57,
|
|
0x52b,
|
|
0x8152a,
|
|
0xe95,
|
|
0x6aa,
|
|
0x615aa,
|
|
0xab5,
|
|
0x4b6,
|
|
0x414ae,
|
|
0xa57,
|
|
0x526,
|
|
0x31d26,
|
|
0xd95,
|
|
0x70b55,
|
|
0x56a,
|
|
0x96d,
|
|
0x5095d,
|
|
0x4ad,
|
|
0xa4d,
|
|
0x41a4d,
|
|
0xd25,
|
|
0x81aa5,
|
|
0xb54,
|
|
0xb6a,
|
|
0x612da,
|
|
0x95b,
|
|
0x49b,
|
|
0x41497,
|
|
0xa4b,
|
|
0xa164b,
|
|
0x6a5,
|
|
0x6d4,
|
|
0x615b4,
|
|
0xab6,
|
|
0x957,
|
|
0x5092f,
|
|
0x497,
|
|
0x64b,
|
|
0x30d4a,
|
|
0xea5,
|
|
0x80d65,
|
|
0x5ac,
|
|
0xab6,
|
|
0x5126d,
|
|
0x92e,
|
|
0xc96,
|
|
0x41a95,
|
|
0xd4a,
|
|
0xda5,
|
|
0x20b55,
|
|
0x56a,
|
|
0x7155b,
|
|
0x25d,
|
|
0x92d,
|
|
0x5192b,
|
|
0xa95,
|
|
0xb4a,
|
|
0x416aa,
|
|
0xad5,
|
|
0x90ab5,
|
|
0x4ba,
|
|
0xa5b,
|
|
0x60a57,
|
|
0x52b,
|
|
0xa93,
|
|
0x40e95
|
|
]
|
|
};
|
|
// 农历日期
|
|
function getLunarDate(date) {
|
|
var year, month, day;
|
|
if (!date) {
|
|
(date = new Date()), (year = date.getFullYear()), (month = date.getMonth()), (day = date.getDate());
|
|
} else {
|
|
(date = date.split('-')), (year = parseInt(date[0])), (month = date[1] - 1), (day = parseInt(date[2]));
|
|
}
|
|
if (year < 1921 ) {
|
|
return {};
|
|
}
|
|
var total, m, n, k, bit, lunarYear, lunarMonth, lunarDay;
|
|
var isEnd = false;
|
|
var tmp = year;
|
|
if (tmp < 1900) {
|
|
tmp += 1900;
|
|
}
|
|
total = (tmp - 1921) * 365 + Math.floor((tmp - 1921) / 4) + lunar.monthadd[month] + day - 38;
|
|
if (year % 4 == 0 && month > 1) {
|
|
total++;
|
|
}
|
|
for (m = 0; ; m++) {
|
|
k = lunar.calendar[m] < 0xfff ? 11 : 12;
|
|
for (n = k; n >= 0; n--) {
|
|
bit = (lunar.calendar[m] >> n) & 1;
|
|
if (total <= 29 + bit) {
|
|
isEnd = true;
|
|
break;
|
|
}
|
|
total = total - 29 - bit;
|
|
}
|
|
if (isEnd) break;
|
|
}
|
|
lunarYear = 1921 + m;
|
|
lunarMonth = k - n + 1;
|
|
lunarDay = total;
|
|
if (k == 12) {
|
|
if (lunarMonth == Math.floor(lunar.calendar[m] / 0x10000) + 1) {
|
|
lunarMonth = 1 - lunarMonth;
|
|
}
|
|
if (lunarMonth > Math.floor(lunar.calendar[m] / 0x10000) + 1) {
|
|
lunarMonth--;
|
|
}
|
|
}
|
|
return {
|
|
lunarYear: lunarYear,
|
|
lunarMonth: lunarMonth,
|
|
lunarDay: lunarDay
|
|
};
|
|
}
|
|
// 农历日期
|
|
function getLunarDateString(lunarDate) {
|
|
if (!lunarDate.lunarDay) return;
|
|
var data = {},
|
|
lunarYear = lunarDate.lunarYear,
|
|
lunarMonth = lunarDate.lunarMonth,
|
|
lunarDay = lunarDate.lunarDay;
|
|
data.tg = lunar.tg.charAt((lunarYear - 4) % 10);
|
|
data.dz = lunar.dz.charAt((lunarYear - 4) % 12);
|
|
data.year = lunar.year.charAt((lunarYear - 4) % 12);
|
|
data.month = lunarMonth < 1 ? '(闰)' + lunar.month.charAt(-lunarMonth - 1) : lunar.month.charAt(lunarMonth - 1);
|
|
|
|
data.day = lunarDay < 11 ? '初' : lunarDay < 20 ? '十' : lunarDay < 30 ? '廿' : '三十';
|
|
if (lunarDay % 10 != 0 || lunarDay == 10) {
|
|
data.day += lunar.number.charAt((lunarDay - 1) % 10);
|
|
}
|
|
return data;
|
|
}
|
|
|
|
|
|
module.exports = {
|
|
comparedate:comparedate,
|
|
formatTime: formatTime,
|
|
formatDate: formatDate,
|
|
formatTime2: formatTime2,
|
|
dateAddDays: dateAddDays,
|
|
dateAddDayz: dateAddDayz,
|
|
dateDiffIncludeToday: dateDiffIncludeToday,
|
|
adddate: adddate,
|
|
getLunarDate:getLunarDate,
|
|
getLunarDateString:getLunarDateString
|
|
}
|
|
|