源碼
<script type="text/JAVAscript" charset="utf-8"> class DateTransform{ /* dayNum: 天數; startDate: 開始日期 */ constructor (dayNum,startDate) { //將天數轉換為數字型 this.dayNum = Number(dayNum); //獲取開始日期,若未傳值,則默認以當前時間 this.startDate = startDate || this.StampToStr(); } /* 計算日期 */ format (type) { const dateType = type || 'YYYY-MM-DD hh:mm:ss';//格式化日期 const start = this.StrToStamp(this.startDate);//開始日期轉時間戳 const num = this.dayNum*24*60*60*1000;//天數轉毫秒數 const end = this.StampToStr(start + num); let time = ''; for(let i in dateType){ const reg = /^[a-z]{1}$/i; if(reg.test(dateType[i])){ //字母 time += end[i]; }else{ //非字母 time += dateType[i]; }; }; return time; } /* 時間戳轉字符串 */ StampToStr (stamp) { //若未傳參,則默認以當前時間 const dateTime = stamp ? new Date(stamp) : new Date(); //年 const year = dateTime.getFullYear(); //月 const month = dateTime.getMonth() + 1 < 10 ? "0" + (dateTime.getMonth() + 1) : dateTime.getMonth() + 1;//0-11 //日 const date = dateTime.getDate() < 10 ? "0" + dateTime.getDate() : dateTime.getDate(); //時 const hour = dateTime.getHours() < 10 ? "0" + dateTime.getHours() : dateTime.getHours();//0-23 //分 const minute = dateTime.getMinutes() < 10 ? "0" + dateTime.getMinutes() : dateTime.getMinutes();//0-59 //秒 const second = dateTime.getSeconds() < 10 ? "0" + dateTime.getSeconds() : dateTime.getSeconds();//0-59 return `${year}-${month}-${date} ${hour}:${minute}:${second}`; } /* 字符串轉時間戳 */ StrToStamp (str) { //若未傳參,則默認以當前時間 return str ? new Date(str).getTime() : new Date().getTime(); } }; var time = new DateTransform(-7).format(); console.log(time); </script>