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

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

游戏|数码彩彩2024-03-20 7:49:35438A+A-

源码

<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>
点击这里复制本文地址 版权声明:本文内容由网友提供,该文观点仅代表作者本人。本站(https://www.angyang.net.cn)仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

昂扬百科 © All Rights Reserved.  渝ICP备2023000803号-3网赚杂谈