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.

316 lines
6.6 KiB

7 months ago
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
}