获取N天前的时间( 过去七天的年月日、toLocaleDateString的应用 、获取时间段字符串,Date.now()和new Date().getTime()的使用 )

本文介绍使用JavaScript获取过去七天日期的三种方法:利用getFullYear、getMonth、getDate,toLocaleDateString以及Date.now()。每种方法均有详细代码示例,包括如何处理月份数字以确保两位数格式。

需求:

  1. 获取过去七天到今天的时间段,需要字符串格式:2020-4-13~2020-4-20 ;
  2. 需要字符串格式:2020-04-13~2020-04-20 ;
  3. 需要的字符串格式 :?start=2020-04-13&end=2020-04-20;

一、用getFullYeargetMonthgetDate方法

	function getPastDate(num){ // num 是过去多少天,如过去七天,num为7;startTime 开始时间是过去;endTime结束时间是此刻;
	  let curDate=new Date(); // 获取当前时间对象
	  const startDate=new Date(curDate.getTime()-(num*24*3600*1000));// 获取当前的时间戳(毫秒),减去num转换的毫秒数,将得到的时间戳传给Date对象;便可获取到过去的那个时间点的时间对象;
	  const startTime=(startDate.getFullYear())+'-'+(startDate.getMonth()+1)+'-'+(startDate.getDate());// 获取过去的那个时间点的年月日,并用 短横线 - 连接;
	  return startTime;
	}

	function getCurrentDate(){
		let curDate=new Date();
		const endTime=(curDate.getFullYear())+'-'+(curDate.getMonth()+1)+'-'+(curDate.getDate());// 获取当前的时间点的年月日,并用短横线 - 连接;
		return endTime
	}
	
const startTime=getPastDate(7); // 如今天是 2020年4月20日,则startTime是2020-4-13;
const endTime=getCurrentDate();// endTime是今天,2020-4-20

二、 用toLocaleDateString方法

function getCurDate(){
	const curDate=new Date().toLocaleDateString(); //当前时间, 获取到的格式是:2020/4/20 
	const endTime=curDate.replace(/[/]/g,'-');// 用短横线 - 全局替换特殊字符 斜线/ 
	return endTime;
}
function getPastDate(num){
	let cur=new Date(); // 获取当前时间对象
	const pastDate=new Date(cur.getTime()-(num*24*3600*1000));
	const startTime=pastDate.toLocaleDateString().replace(/[/]/g,'-');
	return startTime;
}
getCurDate(); // 2020-4-20
getPastDate(7);// 2020-4-13

三、Date.now();方法,可获取到当前的毫秒数,

Date.now(); 等价于 new Date().getTime();,都是获取1970年1月1日截止到现在时刻的时间戳.

	function getPastDate(num){
		const pastDate=new Date(Date.now()-(num*24*3600*1000)); // 可获取到过去num天的时间对象
		const startTime=pastDate.toLocaleDateString().replace(/[/]/g,'-');
		return startTime;
	}
	getPastDate(7);// 2020-4-13

注意:

1.getFullYeargetMonthgetDate方法的时候,如果需要的是,2020-04-13 ,则还需对月份做一个处理;当月份小于10的时候,在月份前面加0,其余处理不做改变

const mon=(new Date().getMonth()+1)<10?`0${new Date().getMonth()+1}`:(new Date().getMonth()+1); // 如 :今天是2020年4月20日,则得到的mon为 04;

2.toLocaleDateString方法的时候,如果需要的是,2020-04-13 ,也需对数据进行处理

function getCurDate(){
	const curDate=new Date().toLocaleDateString(); //当前时间, 获取到的格式是:2020/4/20 
	const date=curDate.split('/'); // 返回的格式是,["2020", "4", "20"]
	const mon=date[1]<10?`0${date[1]}`:date[1];
	return `${date[0]}-${mon}-${date[2]}`;// 显示的格式是:2020-04-20
}

function getPastDate(num){
	let cur=new Date(); // 获取当前时间对象
	const pastDate=new Date(cur.getTime()-(num*24*3600*1000));
	const date=pastDate.toLocaleDateString().split('/');
	const mon=date[1]<10?`0${date[1]}`:date[1];
	return date[0]+'-'+mon+'-'+date[2]; // 显示的格式是:2020-04-13 
}
getCurDate(); // 2020-04-20
getPastDate(7);// 2020-04-13
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值