js时间的一些处理
1.判断是否为同一天
function isSameDay(t) { return new Date(Number(t)).toDateString() === new Date().toDateString(); }
2. 将时间字符串转换为时间戳NAN
var data = "2019-01-22 11:11:11"; //将"-"换成"/",IOS不支持‘-’ var time = data.replace(/-/g, '/'); //转换成时间戳 time = new Date(time).getTime()
3.时间戳转化为字符串
function handleDate(type, timestamp = +new Date()){ let myDate = Number(timestamp) + 8 * 3600 * 1000, dateStr = new Date(myDate).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/, ''), dateArr = dateStr.split(' '), dateArr2 = dateArr[0].split('-'), str = dateStr //其他 2022-08-29 14:19:49 switch(type) { case 1: //2022-08-29 str = dateArr[0] break case 2: //14:19:49 str = dateArr[1] break case 3: //2022年08月29日 str = `${dateArr2[0]}年${dateArr2[1]}月${dateArr2[2]}日` break case 4: //08月29日 str = `${dateArr2[1]}月${dateArr2[2]}日` break default: } return str }
4.字符串转化为时间
function getDateFromString(dateString) { var parts = dateString.split(' '); if(parts.length < 1) { return null; } var part1 = parts[0].split('-'); if(part1.length != 3) { return null; } var d = new Date(part1[0], part1[1] - 1, part1[2]); if(parts[1] && d) { var part2 = parts[1].split(':'); if(part2) { d.setHours(part2[0]); d.setMinutes(part2[1]); d.setSeconds(part2[2]); } } return d; }
5.比较日期大小
function compDate(date1, date2) { var a = Date.parse(date1) - Date.parse(date2); // console.log("a:"+a); if(a < 0) { // console.log("date1小!"); } else if(a > 0) { // console.log("date1大!"); } else if(a == 0) { // console.log("时间相等!"); } else { return 'exception'; } return a; }
6.设置剩余时间
var timeFlag = false var timeLeftTimer = setInterval(function() { setTimeLeft('2019-12-18 15:00:00') }, 1000) //设置剩余时间 function setTimeLeft(endTime) { endTimestamp = strDateTransformTimestamp(endTime) var timeLeft = endTimestamp - new Date().getTime() if (timeLeft <= 0) { timeFlag = true } var timeLeftD = parseInt(timeLeft / 86400000) //剩余天数 var timeLeftH = parseInt((timeLeft % 86400000) / 3600000) //剩余小时数 var timeLeftM = parseInt((timeLeft % 3600000) / 60000) //剩余分钟数 var timeLeftS = parseInt((timeLeft % 60000) / 1000) //剩余秒数 var timeLeftStr = timeLeftD + '天' + timeLeftH + '小时' + timeLeftM + '分' + timeLeftS + '秒' // console.log(timeLeftStr)if (timeFlag) { clearInterval(timeLeftTimer) } } //日期转换为时间戳 function strDateTransformTimestamp(str) { //str '2015-03-05 17:59:00' str = str.substring(0,19); str = str.replace(/-/g,'/'); return new Date(str).getTime(); }
7.返回星期几
function getWeek(type, timestamp = +new Date()) { let myDate = new Date(Number(timestamp)), nowDay = myDate.getDay(), weekday = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"] switch(type) { case 1: weekday = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"] break default: } return weekday[nowDay] }