怎么使用js计算当前一周的日期

 更新时间:2023年09月18日 10:27:20   作者:少吃一口都不行  
这篇文章主要给大家介绍了关于怎么使用js计算当前一周的日期的相关资料,我们可以使用JavaScript的Date对象来获取近一周的日期,文中给出了详细的代码示例,需要的朋友可以参考下

你可以使用 JavaScript 的 Date 对象来计算当前一周的日期。首先,你需要获取当前日期,然后使用 Date 对象的 getDay 方法获取当前是星期几(星期日是 0,星期一是 1,以此类推)。然后,你可以根据当前是星期几来计算出本周的第一天和最后一天的日期。

例如,下面是一个示例函数,它可以计算出当前一周的第一天和最后一天的日期:

function getWeekDates () {
  // 获取当前日期
  var today = new Date();
  // 获取当前是星期几
  var day = today.getDay();
  if (day == 0) {
    // 计算本周第一天的日期
    var startDate = new Date(today.getFullYear(), today.getMonth(), today.getDate() - day - 6);
    // 计算本周最后一天的日期
    var endDate = new Date(today.getFullYear(), today.getMonth(), today.getDate() - day);
  } else {
    var startDate = new Date(today.getFullYear(), today.getMonth(), today.getDate() - day + 1);
    var endDate = new Date(today.getFullYear(), today.getMonth(), today.getDate() - day + 7);
  }
  // 返回本周的日期范围
  return { start: startDate, end: endDate };
}

附:js 获取本周、上周、本月、上月、本年和上年开始和结束日期

一、代码封装

const getDateFn ={
    //1、 得到今天、昨天、明天日期
    //dates为数字类型,0代表今日,-1代表昨日,1代表明日,返回yyyy-mm-dd格式字符串,dates不传默认代表今日。
    getDate(dates) {
        var dd = new Date();
        var n = dates || 0;
        dd.setDate(dd.getDate() + n);
        var y = dd.getFullYear();
        var m = dd.getMonth() + 1;
        var d = dd.getDate();
        m = m < 10 ? "0" + m: m;
        d = d < 10 ? "0" + d: d;
        var day = y + "-" + m + "-" + d;
        return day;
    },
    //2、得到本周、上周、下周的起始、结束日期
    //type为字符串类型,有两种选择,"s"代表开始,"e"代表结束,dates为数字类型,不传或0代表本周,-1代表上
    getMonday(type, dates) {
        var now = new Date();
        var nowTime = now.getTime();
        var day = now.getDay();
        var longTime = 24 * 60 * 60 * 1000;
        var n = longTime * 7 * (dates || 0);
        if (type == "s") {
          var dd = nowTime - (day - 1) * longTime + n;
        };
        if (type == "e") {
          var dd = nowTime + (7 - day) * longTime + n;
        };
        dd = new Date(dd);
        var y = dd.getFullYear();
        var m = dd.getMonth() + 1;
        var d = dd.getDate();
        m = m < 10 ? "0" + m: m;
        d = d < 10 ? "0" + d: d;
        var day = y + "-" + m + "-" + d;
        return day;
    },
    //3、得到本月、上月、下月的起始、结束日期
    //type为字符串类型,有两种选择,"s"代表开始,"e"代表结束,months为数字类型,0代表本月,-1代表上月,1代表下月
    getMonth(type, months) {
        var d = new Date();
        var year = d.getFullYear();
        var month = d.getMonth() + 1;
        if (Math.abs(months) > 12) {
            months = months % 12;
        };
        if (months != 0) {
            if (month + months > 12) {
                year++;
                month = (month + months) % 12;
            } else if (month + months < 1) {
                year--;
                month = 12 + month + months;
            } else {
                month = month + months;
            };
        };
        month = month < 10 ? "0" + month: month;
        var date = d.getDate();
        var firstday = year + "-" + month + "-" + "01";
        var lastday = "";
        if (month == "01" || month == "03" || month == "05" || month == "07" || month == "08" || month == "10" || month == "12") {
            lastday = year + "-" + month + "-" + 31;
        } else if (month == "02") {
            if ((year % 4 == 0 && year % 100 != 0) || (year % 100 == 0 && year % 400 == 0)) {
                lastday = year + "-" + month + "-" + 29;
    } else {
                lastday = year + "-" + month + "-" + 28;
            };
        } else {
            lastday = year + "-" + month + "-" + 30;
        };
        var day = "";
        if (type == "s") {
            day = firstday;
        } else {
            day = lastday;
        };
        return day;
    },
    //4、得到今年、去年、明年的开始、结束日期
    //type为字符串类型,有两种选择,"s"代表开始,"e"代表结束,dates为数字类型,不传或0代表今年,-1代表去年,1代表明年
    getYear(type, dates) {
        var dd = new Date();
        var n = dates || 0;
        var year = dd.getFullYear() + Number(n);
        if (type == "s") {
            var day = year + "-01-01";
        };
        if (type == "e") {
            var day = year + "-12-31";
        };
        if (!type) {
            var day = year + "-01-01/" + year + "-12-31";
        };
        return day;
    },
}
export default getDateFn;

二、使用

<template>
  <div></div>
</template>
<script>
	import getDateFn from '@/utils/getDateFn'
	export default {
		created() {
			console.log('今日日期',getDateFn.getDate());
			console.log('本周开始日期',getDateFn.getMonday('s'));
			console.log('本周结束日期',getDateFn.getMonday('e'));			
			console.log('上周开始日期',getDateFn.getMonday('s',-1))
			console.log('上周结束日期',getDateFn.getMonday('e',-1))
			console.log('本月开始日期',getDateFn.getMonth('s',0));
			console.log('本月结束日期',getDateFn.getMonth('e',0));
		}
	}
</script>

总结 

到此这篇关于怎么使用js计算当前一周日期的文章就介绍到这了,更多相关js计算当前一周日期内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • js将列表组装成树结构的两种实现方式分享

    js将列表组装成树结构的两种实现方式分享

    最近做的任务提了新的需求,需要实现一个树形结构,所以下面这篇文章主要给大家介绍了关于js将列表组装成树结构的两种实现方式,需要的朋友可以参考下
    2022-01-01
  • 移动web开发之touch事件实例详解

    移动web开发之touch事件实例详解

    下面小编就为大家分享一篇移动web开发之touch事件实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • TypeScript中的交叉类型和联合类型示例讲解

    TypeScript中的交叉类型和联合类型示例讲解

    交叉类型简单来说就是通过&符号将多个类型进行合并成一个类型,然后用type来声明新生成的类型,联合类型和交叉类型比较相似,联合类型通过|符号连接多个类型从而生成新的类型,本文就这两个类型结合示例代码详细讲解,感兴趣的朋友跟随小编一起学习吧
    2022-12-12
  • H5跳转小程序按钮不显示(wx-open-launch-weapp)踩坑指南

    H5跳转小程序按钮不显示(wx-open-launch-weapp)踩坑指南

    这篇文章主要给大家介绍了关于H5跳转小程序按钮不显示(wx-open-launch-weapp)踩坑的相关资料,文中介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2023-02-02
  • JavaScript中forEach的错误用法汇总

    JavaScript中forEach的错误用法汇总

    js中foreach是用于遍历数组的方法,将遍历到的元素传递给回调函数,遍历的数组不能是空的要有值,下面这篇文章主要给大家介绍了关于JavaScript中forEach的错误用法,需要的朋友可以参考下
    2022-06-06
  • 详解addEventListener的三个参数之useCapture

    详解addEventListener的三个参数之useCapture

    本文主要给大家介绍的是addEventListener的三个参数之中的useCapture参数的使用及示例分享,有需要的小伙伴参考下
    2015-03-03
  • three.js 入门案例详解

    three.js 入门案例详解

    本篇文章主要介绍了three.js 入门案例详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • JS处理一些简单计算题

    JS处理一些简单计算题

    本篇文章通过JS来实现以下日常用经常用到的计算以及换算等小工具,有兴趣的朋友可以学习下。
    2018-02-02
  • 文本框中,回车键触发事件的js代码[多浏览器兼容]

    文本框中,回车键触发事件的js代码[多浏览器兼容]

    在文本框中输入完内容后,经常需要按回车,焦点跳到下个文本框,或者触发按钮事件
    2010-06-06
  • JS获取url参数,JS发送json格式的POST请求方法

    JS获取url参数,JS发送json格式的POST请求方法

    下面小编就为大家分享一篇JS获取url参数,JS发送json格式的POST请求方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03

最新评论