js中Date相关知识点

今天是2020-12-04, 三天前的年月日,三天后的年月日

function  GetDateStr(DayCount) { 
    var  dd =  new  Date();
    dd.setDate(dd.getDate()+DayCount); //获取DayCount天后的日期
    var  y = dd.getFullYear(); 
	var m1 = addzero((dd.getMonth()+1))
    var  m = (dd.getMonth()+1)<10? "0" +(dd.getMonth()+1):(dd.getMonth()+1); //获取当前月份的日期,不足10补0
	console.log(m, m1)
	var d1 = addzero(dd.getDate())
    var  d = dd.getDate()<10? "0" +dd.getDate():dd.getDate(); //获取当前几号,不足10补0
	console.log(d1, d)
    return  y+ "-" +m+ "-" +d; 
}


function addzero(a) {
	return a < 10 ? ('0' + a) : a
}

15天前的时间: console.log( “15天前:” +GetDateStr(-15));
15天后的时间: console.log( “15天前:” +GetDateStr(15));

把30天前到今天的时间放到一个数组里面

let allMonth = []
for (var i = 0; i < 30; i++) {
  allMonth.unshift(new Date(new Date().setDate(new Date().getDate() - i))
      .toLocaleDateString().split('/').join('-').substr(5))
}

console.log(allMonth)

在某一个时间上面加上xx分钟

比如: 在2021-02-01 17:24:10的基础上加 15分钟

export function add(m) {
  return m < 10 ? '0' + m : m
}
export function getRightTIme(time) {
  var y = time.getFullYear();
      var m = time.getMonth() + 1;
      var d = time.getDate();
      var h = time.getHours();
      var mm = time.getMinutes();
      var s = time.getSeconds();
      return (
        y +
        "-" +
        add(m) +
        "-" +
        add(d) +
        " " +
        add(h) +
        ":" +
        add(mm) +
        ":" +
        add(s)
      );
}
getRightTIme(new Date(new Date(time).setMinutes(new Date(time).getMinutes() + 15)))
time 是你基础时间, 15是加上的时间
结果是整体时间

当前时间转换标准格式 如:yyyy-mm-dd

// padStart 的 polyfill,因为某些机型或情况,还无法支持es7的padStart,比如电脑版的微信小程序
// 所以这里做一个兼容polyfill的兼容处理
if (!String.prototype.padStart) {
	// 为了方便表示这里 fillString 用了ES6 的默认参数,不影响理解
	String.prototype.padStart = function(maxLength, fillString = ' ') {
		if (Object.prototype.toString.call(fillString) !== "[object String]") throw new TypeError(
			'fillString must be String')
		let str = this
		// 返回 String(str) 这里是为了使返回的值是字符串字面量,在控制台中更符合直觉
		if (str.length >= maxLength) return String(str)

		let fillLength = maxLength - str.length,
			times = Math.ceil(fillLength / fillString.length)
		while (times >>= 1) {
			fillString += fillString
			if (times === 1) {
				fillString += fillString
			}
		}
		return fillString.slice(0, fillLength) + str;
	}
}

// 其他更多是格式化有如下:
// yyyy:mm:dd|yyyy:mm|yyyy年mm月dd日|yyyy年mm月dd日 hh时MM分等,可自定义组合
function timeFormat(dateTime = null, fmt = 'yyyy-mm-dd') {
	// 如果为null,则格式化当前时间
	if (!dateTime) dateTime = Number(new Date());
	// 如果dateTime长度为10或者13,则为秒和毫秒的时间戳,如果超过13位,则为其他的时间格式
	if (dateTime.toString().length == 10) dateTime *= 1000;
	let date = new Date(dateTime);
	let ret;
	let opt = {
		"y+": date.getFullYear().toString(), // 年
		"m+": (date.getMonth() + 1).toString(), // 月
		"d+": date.getDate().toString(), // 日
		"h+": date.getHours().toString(), // 时
		"M+": date.getMinutes().toString(), // 分
		"s+": date.getSeconds().toString() // 秒
		// 有其他格式化字符需求可以继续添加,必须转化成字符串
	};
	for (let k in opt) {
		ret = new RegExp("(" + k + ")").exec(fmt);
		if (ret) {
			fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
		};
	};
	return fmt;
}

export default timeFormat

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值