/**
* 日期转化函数
* @param {*} value 需要转化的日期
* @param {*} type 控制输出的样式
* @returns
*/
function getDateTime(value, type) {
if (value) {
value = '' + value
if (value.indexOf('-') > -1) {
value = value.replace(/-/g, '/')
}
}
const time = value
? isNaN(new Date(value))
? new Date()
: new Date(value)
: new Date()
const year = time.getFullYear()
const month = time.getMonth() + 1
const day = time.getDate()
const hour = time.getHours()
const minutes = time.getMinutes()
const second = time.getSeconds()
if (type === '1') {
// 年/月/日 时:分:秒
return (
year +
'/' +
(month > 9 ? month : '0' + month) +
'/' +
(day > 9 ? day : '0' + day) +
' ' +
(hour > 9 ? hour : '0' + hour) +
':' +
(minutes > 9 ? minutes : '0' + minutes) +
':' +
(second > 9 ? second : '0' + second)
)
} else if (type === '2') {
// 年/月/日 时:分
return (
year +
'/' +
(month > 9 ? month : '0' + month) +
'/' +
(day > 9 ? day : '0' + day) +
' ' +
(hour > 9 ? hour : '0' + hour) +
':' +
(minutes > 9 ? minutes : '0' + minutes)
)
} else if (type === '3') {
// 年-月-日
return (
year +
'-' +
(month > 9 ? month : '0' + month) +
'-' +
(day > 9 ? day : '0' + day)
)
} else if (type === '4') {
// 年/月/日 时:分:秒
return (
year.toString() +
(month > 9 ? month : '0' + month) +
(day > 9 ? day : '0' + day) +
(hour > 9 ? hour : '0' + hour) +
(minutes > 9 ? minutes : '0' + minutes) +
(second > 9 ? second : '0' + second)
)
} else if (type === '5') {
// 年/月/日 时:分:秒
return (
year.toString() +
'年' +
(month > 9 ? month : '0' + month) +
'月' +
(day > 9 ? day : '0' + day) +
'日'
)
} else if (type === '6') {
// 年/月/日
return (
year +
'/' +
(month > 9 ? month : '0' + month) +
'/' +
(day > 9 ? day : '0' + day)
)
}
}
/**
* 计算天数差的函数
* @param sDate1:起始日期
* @param sDate2:结束日期
* */
function DateDiff(sDate1, sDate2) {
// sDate1和sDate2是2006-12-18格式
var aDate, saDate, oDate1, oDate2, iDays
aDate = sDate1.split('/')
oDate1 = Date.parse(new Date(aDate[1] + '/' + aDate[2] + '/' + aDate[0])) // 转换为12-18-2006格式
saDate = sDate2.split('/')
oDate2 = Date.parse(new Date(saDate[1] + '/' + saDate[2] + '/' + saDate[0]))
iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24) // 把相差的毫秒数转换为天数
return iDays
}
/**
* 获取两个日期时间的时间差。
* @param {*} direct_time
* @returns
*/
export function timeDis(start_time, direct_time) {
// direct_time格式为yyyy-mm-dd hh:mm:ss 指定时间
var now_time = Date.parse(new Date(start_time))// 当前时间的时间戳
var end_time = Date.parse(new Date(direct_time))// 指定时间的时间戳
if (end_time < now_time) {
// 截止时间已过
return {
minutes: 0,
second: 0
}
} else {
// 计算相差天数
var time_dis = end_time - now_time
var days = Math.floor(time_dis / (24 * 3600 * 1000))
// 计算出小时数
var leave1 = time_dis % (24 * 3600 * 1000)// 计算天数后剩余的毫秒数
var hours = Math.floor(leave1 / (3600 * 1000))
// 计算相差分钟数
var leave2 = leave1 % (3600 * 1000)// 计算小时数后剩余的毫秒数
var minutes = Math.floor(leave2 / (60 * 1000))
// 计算相差秒数
var leave3 = leave2 % (60 * 1000)// 计算小时数后剩余的毫秒数
var second = leave3 / 1000
console.log('12312312', second, minutes)
return {
minutes: days * 24 * 60 + hours * 60 + minutes,
second: second
}
// return days + '天' + hours + '小时' + minutes + '分' + second + '秒'
}
}
/**
* 获取两个日期时间的年,月,天。
* @param {*} type: 控制返回,不传返回所有
* @param {*} d1: 开始日期
* @param {*} d2: 结束日期
* @returns
*/
export function dateDiff(d1, d2, type) {
d1 = new Date(d1.replace(/-/g, '/'))
d2 = new Date(d2.replace(/-/g, '/'))
var obj = {}; var M1 = d1.getMonth(); var D1 = d1.getDate(); var M2 = d2.getMonth(); var D2 = d2.getDate()
obj.Y = d2.getFullYear() - d1.getFullYear() + (M1 * 100 + D1 > M2 * 100 + D2 ? -1 : 0)
obj.M = (obj.Y > 0 ? obj.Y * 12 : 12) + M2 - M1 + (D1 > D2 ? -1 : 0)
obj.s = Math.floor((d2 - d1) / 1000)// 差几秒
obj.m = Math.floor(obj.s / 60)// 差几分钟
obj.h = Math.floor(obj.m / 60)// 差几小时
obj.D = Math.floor(obj.h / 24)// 差几天
if (type === '1') {
return obj.Y
} else if (type === '2') {
return obj.M
} else if (type === '3') {
return obj.s
} else if (type === '4') {
return obj.m
} else if (type === '5') {
return obj.h
} else if (type === '6') {
return obj.D
} else {
return obj
}
}
/**
*获取下一个月的输入日期
*{param:DateTime} date 输入日期(YYYY-MM-DD)
*{param:number } monthNum 月数
*/
export function GetNextMonthDay(datea, monthNum) {
var time1 = datea
var str = time1
var date = new Date(str)
var year = date.getFullYear()// 年
var month = date.getMonth() + 1 + parseFloat(monthNum)// 月 +6个月 因为js里month从0开始,所以要加1
if (month > 12) {
year++
month -= 12
}
if (month < 10) {
month = '0' + month
}
var date2 = new Date(year, month, 0)// 新的年月
var day1 = date.getDate()
var day2 = date2.getDate()
if (day1 > day2) { // 防止+6月后没有31天
day1 = day2
}
str = year + '/' +
month + '/' +
day1
// 最后赋值文本框显示
return str
}
时间日期处理函数
最新推荐文章于 2024-05-15 20:43:52 发布