vue获取当前一周日期

这篇具有很好参考价值的文章主要介绍了vue获取当前一周日期。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

方法一

首先我们通过获取今天时间来确认日期和周几,此时会出现三种情况:

1.当前周一;

2.当前周日;

3.当前是周二到周五任意一天;

也就是明确知道的是今天的日期以及今天周几,通过new Date()来获取时间

需要两个数组来存放每天的名称和日期,也可以一开始创建一个数组对象[{week:'',time:''}],根据个人喜好不多说上代码

const days = ref([''])// 存放一周日期
const week = ref();// 存放当天周几
const weeks = ['星期一','星期二','星期三','星期四','星期五','星期六','星期日']

const generateDateModel = () => {
// 当前时间
const myDate = new Date();
// 年份
const year = myDate.getFullYear();
// 月份
const month = myDate.getMonth()+1;
// 今天周几,number
week.value = myDate.getDay();

// 今天日期,number
const day = myDate.getDate();

// 存放今天到周日的天数
const futureArr = ref()

// 本周已过天数
const pastArr = ref()

// 把今天周几转换成string
week.value = weeks[week.value];

for(let i = 0;i < weeks.length;i+=1){
//判断今天是不是周二到周六中的一天
    if(week.value !== weeks[0] && week.value !== weeks[6]){
// 找到今天索引
      const index = weeks.indexOf(week.value); 
// 今天的日期
      days.value[index-1] = `${year}/${month}/${day}` 
// 今天到周日的天数
      const future = 7 - index 
// 本周已过天数
      const past = index - 1 
// 获取本周剩余日期
      for (let j = future; j > 0 ; j -= 1){ 
        days.value[index + j - 1] = `${year}/${month}/${day+j}`
      }
// 获取本周已过日期
      for (let j = 0; j < past; j += 1){ 
        days.value[j] = `${year}/${month}/${day-j-1}`
      }
// 如果今天是周一获取本周日期
    if(week.value === weeks[0]){ 
      for(let j = 1; j < 7; j += 1){
         days.value[i] = `${year}/${month}/${day+i}`
      }
    }
// 如果今天是周日过去七天日期
      if(week.value === weeks[6]){ 
        for(let j = 7; j > 0; j -= 1){
          days.value[i] = `${year}/${month}/${day-i}`
      }
    }
  }
}

generateDateModel();

以上代码可以实现当前周七天的日期,但是代码过于冗余,而且还有一个问题就是没有顺序,不推荐

方法二

当知道当前日期,我们是可以直接推断出周一或者周日的,因此可以直接用今天的日期减去相应天数,得到周一或周日并且顺序依次排列,代码如下:

const days = ref([''])
const week = ref();
const weeks = ['星期一','星期二','星期三','星期四','星期五','星期六','星期日']


const generateDateModel = () => {
  const myDate = new Date();
  const year = myDate.getFullYear();
  const month = myDate.getMonth() + 1;
  week.value = myDate.getDay() - 1;// 此方法查询出来的是当前周几的数字,比如周一就是1
  let day = myDate.getDate();
  week.value = weeks[week.value];
  if(week.value === weeks[0]){ // 如果今天是周一获取本周日期
    for(let j = 0; j < 7; j += 1){
       days.value[j] = `${year}/${month}/${day + j}`
    }
  }else{
    const index = weeks.indexOf(week.value); // 找到今天索引
     day -= index ; // 周一
     for(let j = 0; j < 7; j += 1){
       days.value[j] = `${year}/${month}/${day + j}`
    }
  }
}

generateDateModel();

此方法可以实现最近一周的时间,当前时间如果是本月最后或者第一天会出现问题。

方法二改进

首先根据周一往后排思路是正确的,但是通过数值简单加减会出现在月初和月末减到负值或加到31以上,因此需要先转成时间戳,通过时间戳减去一天的86400000,先得到今天的索引通过索引来进行加减,代码如下

有更好的方法可以推荐给我

const days = ref([''])
const week = ref();
const day = ref();
const weeks = ['星期一','星期二','星期三','星期四','星期五','星期六','星期日']

const generateDateModel = () => {
  const myDate = new Date();
  const year = myDate.getFullYear();
  const month = myDate.getMonth()+1;
  week.value = myDate.getDay()-1;
  day.value = myDate.getDate();
  week.value = week.value === -1 ? weeks[6] : weeks[week.value];
if(week.value === weeks[0]){ // 如果今天是周一获取本周日期
  days.value[0] = `${year}/${month}/${myDate.getDate()}`
  for(let j = 1; j < 7; j += 1){
    const oneDay = new Date(days.value[0]).getTime() + j * 86400000
    days.value[j] =  `${new Date(oneDay).getFullYear()}/${new Date(oneDay).getMonth() + 1}/${new Date(oneDay).getDate()}`
  }
}else{
  const index = weeks.indexOf(week.value); // 找到今天索引
  const Monday = Date.now() - index * 86400000
  days.value[0] = `${new Date(Monday).getFullYear()}/${new Date(Monday).getMonth() + 1}/${new Date(Monday).getDate()}`
  for (let i = 1; i < 7; i+=1) {
    const oneDay = Monday + i * 86400000
    days.value[i] =  `${new Date(oneDay).getFullYear()}/${new Date(oneDay).getMonth() + 1}/${new Date(oneDay).getDate()}`
  }
}
  
}

console.log(days.value)

generateDateModel();

以下是最中输出结果:

vue获取星期几,vue.js,javascript,前端,typescript

 文章来源地址https://www.toymoban.com/news/detail-532949.html

到了这里,关于vue获取当前一周日期的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mysql查询一周内的数据(起始日期为星期一)、根据一周不同星期进行分组统计

    其中YEARWEEK ( time, 1) 获取的是时间的年以及是该年内的第几周,而其中的1则代表以星期一为一周的第一天。 不加1的情况就是,获取的数据是以星期日为一周的第一天的,与我们的需求不符。 直接在YEARWEEK ( now(), 1) 加上-1即是减一周,也就是上周。 数字1则代表星期一,2代表

    2024年02月13日
    浏览(48)
  • vue编写组件 根据指定日期获取一周内所有 日期与农历日期展示 并标记当天

    首先 我们要引入一下对应的第三方依赖 这里 我们需要 chinese-lunar-calendar 将日期变成农历日期的工具 sass是因为 我这里为了方便 用了 sass写样式 组件代码如下 感兴趣的朋友可以拿出做个二开什么的 效果如下 跨年跨月这些我都是写了判断的 例如 我们将created 代码修改如下 改

    2024年02月05日
    浏览(43)
  • JavaScript - 判断当前时间是否在指定区间内,例如:9:00~12:00(检查当前时间是否处于规定的两个时间段范围内),适用于 vue.js / uniapp / 微信小程序等前端项目

    例如,您想知道当前时间是否处于 9:00 ~ 12:00 时间区间内,然后根据这个判断进而实现业务逻辑。 如下示例所示, 本文提供一个函数,您只需要传入 2 个时间区间,便可得出当前时间是否在该时间区间范围内: 您可以一键复制,直接粘贴到您的项目中。 您只需要传入开始时

    2024年02月16日
    浏览(60)
  • mysql常见时间函数, 获取日期对应的年、月、日、星期、周、季度、时、分、秒函数、加减、日期都有

     获取日期对应的年、月、日、星期、季度、时、分、秒函数、日期为当年的第几天函数都有 1、NOW(),用于获取当前日期和时间函数 select now()  返回:2023-05-18 10:58:06 2、CURDATE(),用于获取当前日期,同CURRENT_DATE() select curdate()  返回:2023-05-18 3、CURTIME(),用于获取当前时间,

    2024年02月15日
    浏览(46)
  • JavaScript中的时间日期函数new Date()(JS中5种获取时间戳的函数)

    简介: JavaScript 中的 new Date() 方法用于创建一个新的 Date 对象,该对象表示当前日期和时间。Date 对象提供了许多方法和属性,可以用于获取和设置日期和时间信息。 new Date([year, month, day, hour, minute, second, millisecond]) 其中,每个参数都是可选的。如果没有指定参数,则 new Dat

    2024年02月04日
    浏览(70)
  • python,获取当前日期且以当前日期为名称创建文件名

    python,获取当前日期且以当前日期为名称创建文件名 - 小贝书屋 - 博客园 import  time import  os import  sys path = os.path.abspath(os.path.dirname(sys.argv[0])) localtime = time.localtime(time.time()) #获取当前时间 time = time.strftime( \\\'%Y%m%d\\\' ,time.localtime(time.time())) #把获取的时间转换成\\\"年月日格式” pr

    2023年04月08日
    浏览(38)
  • Python获取当前时间日期

    时间日期类型在Python中主要有两个模块:time模块 和 datetime模块 time模块: 是基于Unix Timestamp(时间戳)实现的,所能表述的范围被限定在1970-2038年之间; 时间戳: 是指格林尼治时间1970年01月01日00时00分00秒起至现在的总秒数,结果是一个浮点数。 2.1 获取当前时间戳 示例:

    2024年02月13日
    浏览(45)
  • Java 获取当前日期和时间

     System.currentTimeMillis() 获取标准时间可以通过 System.currentTimeMillis() 方法获取,此方法不受时区影响,得到的结果是时间戳格式的。例如: 我们可以将时间戳转化成我们看得懂的形式 则该时间戳对应的时间为 值得注意的是,此方法会根据我们系统时间返回当前值,因为世界各

    2024年02月05日
    浏览(49)
  • 微信小程序 获取当前日期时间

    打印结果: 自定义:

    2024年02月04日
    浏览(61)
  • 微信小程序获取当前日期时间

    在小程序中获取当前系统日期和时间,可直接拿来使用的常用的日期格式 一般放入utils工具类    参考代码  示例

    2024年02月07日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包