js获取任意年月份天数,任意年月日时间戳

js获取任意年月日时间戳

window.onload= function(){
	//获取指定时间戳月份
	function getMonth( timestamp ){
		return  new Date(timestamp).getMonth()+1
	}	
	//console.log(getMonth('2023/07/08 19:13:20')) 
	//获取指定时间戳年份 
	function getYear(timestamp){
		return new Date(timestamp).getFullYear()
	}	
	//console.log(getYear('2023-07-08'))	
	//获取当前年有多少天
	function getYearDay(year){
		//var year = new Date().getFullYear()
		let day = 365
		if(year % 4 === 0){
			day = 366
		}
		return day 
	}	
	//console.log(getYearDay())
	
	//获取一个月有多少天
	/* 1/3/5/7/8/10/12公历月 31天
	 * 闰年2月29天 其它年份28天  4年一个小润年 366天
	 *year 年份
	 *month 月份
	**/
	function getMonthDay(year,month){
		let day = 0  
		month = parseInt(month)
		let bigMonth = [1,3,5,7,8,10,12]
		if(bigMonth.indexOf(month) != -1){
			day = 31
		}else if(month == 2){
			if(getYearDay(year) === 365){
				day = 28 
			}
			if(getYearDay(year) === 366){
				day = 29
			}
		}else{
			day = 30			
		}
		return day
	}	
	//获取指定时间到目前时间月份头尾天的时间戳
	function test(){
		let earlistYear = getYear("2023-06-28T18:14:39.466Z")
		let earlistMonth = getMonth("2023-06-28T18:14:39.466Z")
		//获取当前的年份,月份
		let currentYear = getYear(Date.now())
		let currentMonth = getMonth(Date.now())
				
		let i=0
		let m = parseInt(currentMonth)
		let y = parseInt(currentYear)
		while(true){
			//获取当前月份多少天
			let n = m-i
			if(n == 0){
				m = 12 , n = 12
				i = 0, y -= 1
			}
			//获取 某年某月的天数
			let days = getMonthDay(y,n)
			//获取某年某月第一天的时间戳,最后一天的时间戳
			console.log(y+'年'+n+'月共'+days+'天。')
			let firstDayTime = new Date(y,n-1,1).getTime()
			let lastDayTime = firstDayTime + 24*60*60*1000*days -1 
			console.log(y+'年'+n+'月第一天时间戳:'+firstDayTime)
			console.log(y+'年'+n+'月最后一天时间戳:'+lastDayTime)		
			if( n == earlistMonth && y == earlistYear)
				break;		
			i++ 	
		}	
	}
	
	test()
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值