JavaScript时间字符串进行格式转换 当天显示时间 1天内显示昨天 7天内显示星期 7天外显示年月日
转自:https://blog.csdn.net/u014520745/article/details/52605189
<!DOCTYPE html> <html lang="zh-cmn-Hans"> <head> <meta charset="UTF-8"> <title>Document</title> <style> body:before { content: ""; position: fixed; top: -10px; left: 0; width: 100%; height: 10px; -webkit-box-shadow: 0px 0px 10px rgba(0,0,0,.8); -moz-box-shadow: 0px 0px 10px rgba(0,0,0,.8); box-shadow: 0px 0px 10px rgba(0,0,0,.8); z-index: 100; } </style> </head> <body> <input type="text" id="input" value="2020-05-01 14:03:59"> <input type="submit" onclick="fun1();"> <div id="div"></div> </body> <script> function fun1() { var date1 = document.getElementById("input").value var date2 = trans(date1) document.getElementById("div").innerHTML = date2 } function trans(date) { var timestamp = getTimestamp(date) var d = new Date(timestamp) var t = new Date() var objd = { 'Y': d.getFullYear(), 'm': parseInt(d.getMonth()) + 1, 'd': parseInt(d.getDate()), 'w': d.getDay(), 'H': d.getHours(), 'i': d.getMinutes(), 's': d.getSeconds(), } if (d.getMinutes() < 10) { // 分钟数值不足2位补充前置0 objd.i = '0' + objd.i } var objt = { 'Y': t.getFullYear(), 'm': parseInt(t.getMonth()) + 1, 'd': parseInt(t.getDate()), 'w': t.getDay(), 'H': t.getHours(), 'i': t.getMinutes(), 's': t.getSeconds(), } console.log(objd) var timeStr = '' var dayPerMonthAddTime = getDayPerMonth(objd.Y) var week = ['周日','周一','周二','周三','周四','周五','周六'] if(objd.Y == objt.Y && objd.m == objt.m && objd.d == objt.d) { timeStr += objd.H + ':' + objd.i } else if ((objd.Y == objt.Y && objd.m == objt.m && objd.d == objt.d - 1) || (objd.Y == objt.Y && objt.m - objd.m == 1 && dayPerMonthAddTime[objd.m] == objd.d && objt.d == 1) || (objt.Y - objd.Y == 1 && objd.m == 12 && objd.d == 31 && objt.m == 1 && objt.d == 1)) { timeStr += '昨天 ' + objd.H + ':' + objd.i + ' ' } else if ((objd.Y == objt.Y && objd.m == objt.m && objt.d - objd.d < 7) || (objd.Y == objt.Y && objt.m - objd.m == 1 && dayPerMonthAddTime[objd.m] - objd.d + objt.d < 7 || (objt.Y - objd.Y == 1 && objd.m == 12 && objt.m == 1 && 31 - objd.d + objt.d < 7))) { timeStr += week[objd.w] + ' ' + objd.H + ':' + objd.i } else { timeStr += objd.Y + '年' + objd.m + '月' + objd.d + '日 ' + objd.H + ':' + objd.i } if(objd.H < 13) { timeStr += ' 上午' } else { timeStr += ' 下午' } return timeStr } function getTimestamp(date) { return Date.parse(new Date(date)) } function getDayPerMonth(year) { var arr = [] arr[1] = 31 arr[3] = 31 arr[4] = 30 arr[5] = 31 arr[6] = 30 arr[7] = 31 arr[8] = 31 arr[9] = 30 arr[10] = 31 arr[11] = 30 arr[12] = 31 if((year%4 == 0 && year%100 != 0) || (year%400 == 0)) { arr[2] = 29 } else { arr[2] = 28 } return arr } </script> </html>

浙公网安备 33010602011771号