怎么使用js計(jì)算當(dāng)前一周的日期
你可以使用 JavaScript 的 Date 對(duì)象來計(jì)算當(dāng)前一周的日期。首先,你需要獲取當(dāng)前日期,然后使用 Date 對(duì)象的 getDay 方法獲取當(dāng)前是星期幾(星期日是 0,星期一是 1,以此類推)。然后,你可以根據(jù)當(dāng)前是星期幾來計(jì)算出本周的第一天和最后一天的日期。
例如,下面是一個(gè)示例函數(shù),它可以計(jì)算出當(dāng)前一周的第一天和最后一天的日期:
function getWeekDates () {
// 獲取當(dāng)前日期
var today = new Date();
// 獲取當(dāng)前是星期幾
var day = today.getDay();
if (day == 0) {
// 計(jì)算本周第一天的日期
var startDate = new Date(today.getFullYear(), today.getMonth(), today.getDate() - day - 6);
// 計(jì)算本周最后一天的日期
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 獲取本周、上周、本月、上月、本年和上年開始和結(jié)束日期
一、代碼封裝
const getDateFn ={
//1、 得到今天、昨天、明天日期
//dates為數(shù)字類型,0代表今日,-1代表昨日,1代表明日,返回yyyy-mm-dd格式字符串,dates不傳默認(rèn)代表今日。
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、得到本周、上周、下周的起始、結(jié)束日期
//type為字符串類型,有兩種選擇,"s"代表開始,"e"代表結(jié)束,dates為數(shù)字類型,不傳或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、得到本月、上月、下月的起始、結(jié)束日期
//type為字符串類型,有兩種選擇,"s"代表開始,"e"代表結(jié)束,months為數(shù)字類型,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、得到今年、去年、明年的開始、結(jié)束日期
//type為字符串類型,有兩種選擇,"s"代表開始,"e"代表結(jié)束,dates為數(shù)字類型,不傳或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('本周結(jié)束日期',getDateFn.getMonday('e'));
console.log('上周開始日期',getDateFn.getMonday('s',-1))
console.log('上周結(jié)束日期',getDateFn.getMonday('e',-1))
console.log('本月開始日期',getDateFn.getMonth('s',0));
console.log('本月結(jié)束日期',getDateFn.getMonth('e',0));
}
}
</script>總結(jié)
到此這篇關(guān)于怎么使用js計(jì)算當(dāng)前一周日期的文章就介紹到這了,更多相關(guān)js計(jì)算當(dāng)前一周日期內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- js獲取當(dāng)前周、上一周、下一周日期
- javascript 當(dāng)前日期加(天、周、月、年)
- js實(shí)現(xiàn)獲取當(dāng)前時(shí)間是本月第幾周的方法
- moment.js輕松實(shí)現(xiàn)獲取當(dāng)前日期是當(dāng)年的第幾周
- JS實(shí)現(xiàn)獲取當(dāng)前所在周的周六、周日示例分析
- JS如何根據(jù)當(dāng)前日期獲取一周所有日期
- moment.js 計(jì)算當(dāng)前一周、一月對(duì)應(yīng)日期的實(shí)例
- js根據(jù)當(dāng)前日期獲取前一周或者后一周等日期
- 如何用js獲取當(dāng)年周數(shù)列表以及當(dāng)前日期是第幾周
相關(guān)文章
JavaScript實(shí)現(xiàn)點(diǎn)擊復(fù)制功能具體代碼(JS訪問剪貼板相關(guān))
這篇文章主要給大家介紹了關(guān)于JavaScript實(shí)現(xiàn)點(diǎn)擊復(fù)制功能(JS訪問剪貼板相關(guān))的相關(guān)資料,復(fù)制功能指的是將一個(gè)文本或者圖片等資源從一個(gè)位置通過復(fù)制的方式再次拷貝到另一個(gè)位置,需要的朋友可以參考下2023-10-10
js實(shí)現(xiàn)盒子滾動(dòng)動(dòng)畫效果
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)盒子滾動(dòng)動(dòng)畫效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08
JavaScript面向?qū)ο笾接徐o態(tài)變量實(shí)例分析
這篇文章主要介紹了JavaScript面向?qū)ο笾接徐o態(tài)變量,結(jié)合實(shí)例形式分析了私有靜態(tài)變量的定義與使用方法,需要的朋友可以參考下2016-01-01
layDate插件設(shè)置開始和結(jié)束時(shí)間
這篇文章主要為大家詳細(xì)介紹了layDate插件設(shè)置開始時(shí)間和結(jié)束時(shí)間,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11
Javascript實(shí)現(xiàn)秒表計(jì)時(shí)游戲
這篇文章主要為大家詳細(xì)介紹了Javascript實(shí)現(xiàn)秒表計(jì)時(shí)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-05-05
js動(dòng)態(tài)修改整個(gè)頁面樣式達(dá)到換膚效果
這篇文章主要介紹了通過js動(dòng)態(tài)修改整個(gè)頁面樣式達(dá)到換膚效果,需要的朋友可以參考下2014-05-05

