【封装常见的函数】获取当前日期/当前日期时间/昨天日期/当前日期的一年前的日期/当前日期的前一个周日期/当前日期的前一个月日期/近12个月的月份数组/时间戳转日期格式/日期相减/桩号处理
【封装常见的函数】获取当前日期/当前日期时间/昨天日期/当前日期的一年前的日期/当前日期的前一个周日期/当前日期的前一个月日期/近12个月的月份数组/时间戳转日期格式/日期相减/桩号处理
要求输出的是数据格式为:KK000+000.000,验证
pileFunction(pile) {
const XREG = (val) => { return val.replace(/[^a-zA-Z]/g,'') }
const REG = (val) => { return val.replace(/[^\d.+]/g,'') } // 提取桩号中的数字和 “+”
const complementSart = (vlue) => {return vlue.padStart(3,0)} // 向前补位0
const complementEnd = (vlue) => {return vlue.padEnd(3,0)} // 向前补位0
let li = REG(pile).split('+');
if(li[1].indexOf('.') !== -1){
let lis2 = li[1].split('.');
return XREG(pile).toUpperCase()+complementSart(li[0])+'+'+complementSart(lis2[0])+'.'+complementEnd(lis2[1])
}else{
return XREG(pile).toUpperCase()+complementSart(li[0])+'+'+complementSart(li[1])+'.000'
}
}
pileFunction('zk1+2.3')
// 输出为:ZK001+002.300
pileFunction('k15+02')
// 输出为:K015+002.000
//这个方法还可以优化,加一个桩号的直接验证,输入是否符合桩号规则,字母数字几号数字小数点数字
NowTime() {
const date = new Date() //调用Date函数
const year = date.getFullYear() //年
const month = date.getMonth() + 1 //月
const daily = date.getDate() //日
const time = year + '-' + month.toString().padStart(2, "0") + '-' + daily.toString().padStart(2, "0")
return time
}
Now_DateTime() {
const date = new Date() //调用Date函数
const year = date.getFullYear() //年
const month = date.getMonth() + 1 //月
const daily = date.getDate() //日
const hours = date.getHours() // 获取-当前小时 15时
const minutes = date.getMinutes() //获取---当前分钟 21分
const seconds = date.getSeconds() //获取-秒数 53秒
const datetime = year + '-' + month.toString().padStart(2, "0") + '-' + daily.toString().padStart(2, "0") + ' ' + hours.toString().padStart(2, "0") + ':' + minutes.toString().padStart(2, "0") + ':' + seconds.toString().padStart(2, "0")
return datetime
}
Yesterday() {
const date = new Date();
date.setTime(date.getTime() - 3600 * 1000 * 24);
const year = date.getFullYear(); //年
const month = date.getMonth() + 1; //月
const daily = date.getDate(); //日
const time = year + '-' + month.toString().padStart(2, "0") + '-' + daily.toString().padStart(2, "0")
return time
}
NowDate_or_lastDate() {
const date = new Date() //调用Date函数
const year = date.getFullYear() //年
const month = date.getMonth() + 1 //月
const daily = date.getDate() //日
// const hours = date.getHours() // 获取-当前小时 15时
// const minutes = date.getMinutes() //获取---当前分钟 21分
// const seconds = date.getSeconds() //获取-秒数 53秒
const NOWdatetime = year + '-' + month.toString().padStart(2, "0") + '-' + daily.toString().padStart(2, "0");
const LASTdatetime = year - 1 + '-' + month.toString().padStart(2, "0") + '-' + daily.toString().padStart(2, "0")
return [NOWdatetime + ' 00:00:00', LASTdatetime + ' 23:59:59']
}
oldweekTime() {
const date = new Date();
date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
const year = date.getFullYear() //年
const month = date.getMonth() + 1 //月
const daily = date.getDate() //日
const oldtime = year + '-' + month.toString().padStart(2, "0") + '-' + daily.toString().padStart(2, "0")
return oldtime
}
oldTime() {
const date = new Date();
date.setTime(date.getTime() - 3600 * 1000 * 24 * 30);
const year = date.getFullYear() //年
const month = date.getMonth() + 1 //月
const daily = date.getDate() //日
const oldtime = year + '-' + month.toString().padStart(2, "0") + '-' + daily.toString().padStart(2, "0")
return oldtime
}
get12Months() {
let dataArr = [];
let data = new Date();
data.setMonth(data.getMonth() + 1, 1); //获取到当前月份,设置月份
for (let i = 0; i < 12; i++) {
data.setMonth(data.getMonth() - 1); //每次循环一次 月份值减1
let m = data.getMonth() + 1;
// m = m < 10 ? "0" + m : m;
dataArr.push(data.getFullYear() + "_" + m);
}
return dataArr;
}
// 当前日期:2022-3, 得到是2022-3,2022-2,2022-1,2021-12,2021-11,2021-10,2021-9,2021-8,2021-7,2021-6,2021-5,2021-4,2021-3,
timestampToTime(timestamp) {
var date = new Date(timestamp);//时间戳为10位需*1000,时间戳为13位的话不需乘1000
var Y = date.getFullYear() + '-';
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
var D = date.getDate();
var h = date.getHours() + ':';
var m = date.getMinutes() + ':';
var s = date.getSeconds();
return Y + M + D.toString().padStart(2, '0') + ' ' + h.padStart(3, '0') + m.padStart(3, '0') + s.toString().padStart(2, '0');
}
subTime(time1, time2) {
let date1 = new Date(time1.toString()).getTime() //调用Date函数
let date2 = new Date(time2.toString()).getTime() //调用Date函数
let date = date1 - date2
let hours = Math.floor(date / 1000 / 3600)
let minutes = (date / 1000 / 60) % 60
return hours + "小时" + minutes.toFixed(0) + "分钟"
}