2021-01-04 js时间对象的格式化以及获取某年某月的天数

格式化时间

在前端页面中一般时间的要求格式是与时间对象的显示格式有区别的,默认页面中 new Date() 的显示为Mon Jan 04 2021 14:25:04 GMT+0800 (中国标准时间),这显然并不符合我们中文时间的阅读方式,我们一般习惯于 2020-01-04 14;25:04这样的阅读方式,总结了几种格式化时间对象的方式.

  • 方式1 字符串拼接
	var date = new Date();
	var str = date.getFullYear()+'-'+(date.getMonth()+1)+'-'+date.getDate()+' '+date.getHours()+':'+date.getMinutes()+':'+date.getSeconds();

注意 date对象的月份是从0开始的,所以我们所说的月份要将date对象的月份+1。
//此时的str就是拼接好的时间对象的字符串,但是此时得到的是2021-1-4 14;25:4,这样的还需要进行不足两位进行补零处理,用到了字符串的padLeft方法,传两个参数,第一个是要得到的位数,第二个参数是位数不足要补位的字符.
进行补足位数处理的data对象格式化最终的字符串拼接为

var date = new Date();
var str = date.getFullYear()+'-'+(date.getMonth()+1).toString().padLeft(2,'0')+'-'+date.getDate().toString().padLeft(2,'0')+' '+date.getHours().toString().padLeft(2,'0')+':'+date.getMinutes().toString().padLeft(2,'0')+':'+date.getSeconds().toString().padLeft(2,'0');
  • 方式二 通过date对象自带的方法拼接

js的date对象也自己提供了一些格式化的方法,但是和我们习惯的可能稍微有些不同,所以可以只取符合格式的部分进行拼接。

var date = new Date();
var str = date.toJSON().substr(0,10)+' '+date.toTimeString().substr(0,8);
获取本月的天数
  • 方式1

其实最基础的办法就是通过判读是否是 1,3,5,7,8,10,12月,是的话返回31,是2月的话再判断是不是闰年,是的话返回29,不是返回29,其他返回30。

function getDays(year,month){
	var arr = [1,3,5,7,8,10,12]
	if(month==2){
		var days = 28;
		if((year%4==0) && (year%100!=0 || year%400==0)){
			days = 29;
		}
		return days;
	}
	else if(arr.includes(month)){
		return 31;
	}else{
		return 30;
	}
}
//输入参数年份和 月份来判断当月天数,注意本方法是判断的月份值,取值1-12,并不是date对象的getMonth()值。

var date = new Date();
var days = getDays(date.getFullYear(),date.getMonth()+1 );//获取本月的天数
  • 方式2

利用date对象的构造方法在设置天数为0时,调用getDate()方法会返回上月的最后一天,这样的话要获取本月天数,只需要构造下月的date对象并将天数设置为0就可以了。

var date = new Date();
var days =  new Date(date.getFullYear(),date.getMonth()+1,0).getDate();//获取本月的天数
//注意此时的构造date对象的month值为0-11,传入getMonth()+1,其实就是传入下月的month值。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值