momentJS

npm install moment
确保您已经引入moment

// 在main.js文件种引入Moment.js库
const moment = require('moment');


一、快速选择本周、本日、本月、上周、下周

// const now = new Date();
// const dayOfWeek = now.getDay();
// const sunday = new Date(now);
// sunday.setDate(sunday.getDate() - dayOfWeek + 1); // 本周第一天,周一
// const saturday = new Date(sunday);
// saturday.setDate(saturday.getDate() + 6); // 本周最后一天,周日
// console.log(
//   `本周的时间范围是:${sunday.toISOString()} 到 ${saturday.toISOString()}`
// );

  let now = moment();
  let year = now.format('Y');
  let year = now.format('M');
  let year = now.format('D');
  console.log(`今天是${year}年${month}月${day}日`);
  // 今天是2020年04月04日

二、moment和GMT(标准时间)互转

// GMT格式化
let startTime = this.$moment().format("YYYY.MM.DD");
let endTime = this.$moment().add(1, "days").format("YYYY.MM.DD");
    
// moment转为GMT
let dateOptions = [new Date(startTime), new Date(endTime)];
    
// 获取当前周几,0--周日,1--周一,以此类推
let startTime = this.$moment().format("YYYY.MM.DD");

// 计算两次时间差几天
let start = this.$moment("2024-07-02")
let end = this.$moment("2024-07-05")
let num = end.diff(start, 'days')

三、获取某一天的上周和下周

1、获取某一天的上周和下周(从周一开始的一周)

// 假设你有一个给定的日期
const givenDate = moment('2023-10-15'); // 你可以根据需要更改这个日期

// 获取上周的日期范围 (周一到周日)
const lastWeekStart = givenDate.clone().startOf('isoWeek').subtract(1, 'weeks').format("YYYY/MM/DD"); // 上周周一
const lastWeekEnd = lastWeekStart.clone().endOf('isoWeek').subtract(1, 'milliseconds').format("YYYY/MM/DD"); // 上周周日

// 获取一个包含上周所有日期的数组 (周一到周日)
const lastWeekDays = [];
for (let i = 0; i < 7; i++) {
  lastWeekDays.push(lastWeekStart.clone().add(i, 'days').format('YYYY-MM-DD'));
}

// 获取下周的日期范围 (周一到周日)
const nextWeekStart = givenDate.clone().startOf('isoWeek').add(1, 'weeks').format("YYYY/MM/DD"); // 下周周一
const nextWeekEnd = nextWeekStart.clone().endOf('isoWeek').format("YYYY/MM/DD"); // 下周周日

// 获取一个包含下周所有日期的数组 (周一到周日)
const nextWeekDays = [];
for (let i = 0; i < 7; i++) {
  nextWeekDays.push(nextWeekStart.clone().add(i, 'days').format('YYYY-MM-DD'));
}

// 打印结果
console.log('上周的日期范围 (周一到周日):', lastWeekDays);
console.log('下周的日期范围 (周一到周日):', nextWeekDays);

2、获取某一天的上周和下周(从周六开始的一周)

// 设置一个特定的日期,例如2023-03-15
const specificDay = '2023-03-15';
 
// 将特定日期转换为Moment对象
const day = moment(specificDay);
 
// 获取上周的开始和结束时间
const lastWeekStart = day.clone().subtract(1, 'weeks').startOf('week').format("YYYY/MM/DD");
const lastWeekEnd = day.clone().subtract(1, 'weeks').endOf('week').format("YYYY/MM/DD");
 
// 获取下周的开始和结束时间
const nextWeekStart = day.clone().add(1, 'weeks').startOf('week').format("YYYY/MM/DD");
const nextWeekEnd = day.clone().add(1, 'weeks').endOf('week').format("YYYY/MM/DD");
 
// 打印结果
console.log('上周开始:', lastWeekStart.format());
console.log('上周结束:', lastWeekEnd.format());
console.log('下周开始:', nextWeekStart.format());
console.log('下周结束:', nextWeekEnd.format());
 

四、计算两个日期相差天数

data(){
	return {
		infoForm: {
			startDateTime: "2024-12-17 00:00:00",
			endDateTime: "2024-12-17 00:00:00",
		},
		dayCounts: 0,
	}
},
method: {
	// 选择结束时间
	endTimeChange(){
	  let time1 = this.$moment(this.infoForm.startDateTime, "YYYY-MM-DD HH:mm:ss");
	  let time2 = this.$moment(this.infoForm.endDateTime, "YYYY-MM-DD HH:mm:ss");
	  // 输出时间差
	  let diff = time2.diff(time1);
	  let duration = this.$moment.duration(diff)
	  let tempDays = duration.days()
	  let tempHours = duration.hours()
	  if(tempHours > 12){
	    tempDays += 1
	  } else if(tempHours <= 12 && tempHours != 0) {
	    tempDays += 0.5
	  }
	  this.dayCounts = tempDays
	},
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值