<返回更多

利用JS来计算特定天数的日期

2019-10-08    
加入收藏

源码

<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>
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>