vue中用moment对时间格式化,以及用js计算开始日期到结束日期,中间相差多少天。

经常要对时间进行转换,就总结了下方法。

以前实际上也总结了,就是不全。这次研究了下moment.写点常用需求记录下

一、自定义组合年月日,时分秒

//格式化时间
    formatTime(i){
        let date1=new Date(i);
        let day = date1.getDate();    //获取年
        let	month = date1.getMonth()+1;  //获取月
        let	year = date1.getFullYear();   //获取日
        let hour = time.getHours(); //获取时
        let minutes = time.getMinutes(); //获取分
        let seconds = time.getSeconds(); //获取秒
        let a=year+'-'+month+'-'+day;
        console.log(a)
        return a
    },

	time(val){
      const newDate = new Date(val);
      const Year = newDate.getFullYear();
      const Month = (newDate.getMonth() + 1 + "").padStart(2, "0"); //padStart() 字符串不够长 从头部补齐指定的字符串 padEnd() 尾部补齐
      const Day = (newDate.getDate() + "").padStart(2, "0");
      const Hours = (newDate.getHours() + "").padStart(2, "0");
      const Minutes = (newDate.getMinutes() + "").padStart(2, "0");
      const Seconds = (newDate.getSeconds() + "").padStart(2, "0");

      return Year+'-'+Month+'-'+Day+' ' + Hours+':'+Minutes+':'+Seconds 
    },

二、获取当月的天数。

	let b=moment("2022-07-15", "YYYY-MM").daysInMonth() // 31
    console.log(b);

三、格式化时间为年月日,时分秒

let c= moment(val).format('YYYY-MM-DD HH:mm:ss')
console.log(b);

四、需要上午,下午的时间格式化

	转义字符
	要转义格式字符串中的字符,可以将字符括在方括号中。
	const newDate = new Date();
	let a= moment(newDate).format("LLL");  
    console.log(a);     //2022年7月15日下午5点31分

在这里插入图片描述

五、js去除时间的时分秒

    //去除时间的时分秒
    timeFormat(date){
        if(date==undefined){
              return ''
        }else{
            let newDate=/\d{4}-\d{1,2}-\d{1,2}/g.exec(date)
            // console.log(newDate)
            return newDate[0]
        }
    },

六、计算开始日期到结束日期,中间相差多少天

https://moment.nodejs.cn/docs/#/get-set/

//开始日期到结束日期,中间相差多少天
let a= moment(this.endDate).diff(moment(this.beginDate), 'days')

diff前面是结束时间,后面是开始时间

//某一天到今天,中间相差多少天
let time=new Date()
let b= moment(this.endDate).diff(moment(time), 'days')


//您还可以使用持续时间moment#diff来获取两个时刻之间的持续时间。
//为此,只需将moment#diff方法传入moment#duration如下:
 var x = new moment()
 var y = new moment()
 var duration = moment.duration(x.diff(y))

要获得两个 moment 之间差异的持续时间,你可以将 diff 作为参数传递给 moment#duration。 有关详细信息,请参阅 moment#duration 上的文档。

支持的测量是 years、months、weeks、days、hours、minutes 和 seconds。 为了便于开发,从 2.0.0 开始支持单数形式。 1.1.1 版本提供毫秒以外的测量单位。

默认情况下,moment#diff 会将结果截断为零位小数,返回一个整数。 如果你想要一个浮点数,传递 true 作为第三个参数。 在 2.0.0 之前,moment#diff 返回一个四舍五入到最接近的整数的数字,而不是截断的数字。

七、是否是闰年

moment().isLeapYear();
//如果该年是闰年,则返回true,否则返回false。
moment([2000]).isLeapYear() // true

八、某个时间以前(以后)多少天

	添加这段时间在2022-08-09
	//当前时间10天以前
	let b=moment().subtract(10, 'days').calendar();    //           2022/07/30
    let b1=moment().subtract(10, 'days').format('YYYY-MM-DD');//    2022-07-30
	//当前时间10天以后
	let b=moment().add(10, 'days').calendar();    //           2022/08/19
    let b1=moment().add(10, 'days').format('YYYY-MM-DD');//    2022-08-19

	//2022-06-10     5天以后,5天以前
	let b=moment('2022-06-10').add(5, 'days').calendar();    //                2022/06/15
    let b1=moment('2022-06-10').subtract(5, 'days').format('YYYY-MM-DD');//    2022-06-05

九、一些其他时间格式化

1、直接获取当天时间
let b=moment().calendar();   //  今天13:55
2、获取当前是星期几
let b2=  moment().format('dddd');   //星期二
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值