// 获取月份天数
function getMonthDays(year, month) {
let stratDate = new Date(year, month - 1, 1),
endData = new Date(year, month, 1)
let days = (endData - stratDate) / (1000 * 60 * 60 * 24)
return days
}
// 获取日期是星期几
function getWeekday(time) {
let now = new Date(time);
let day = now.getDay();
let weeks = new Array(
"周日",
"周一",
"周二",
"周三",
"周四",
"周五",
"周六"
);
let week = weeks[day];
return week;
},
// 获取本周星期一和星期天的日期
function getWeekDate() {
let now = new Date();
let nowTime = now.getTime();
let day = now.getDay();
let oneDayTime = 24 * 60 * 60 * 1000;
let MondayTime = nowTime - (day - 1) * oneDayTime;//周一
let SundayTime = nowTime + (7 - day) * oneDayTime;//周日
return { MondayTime, SundayTime } // new Date(MondayTime)
},
// 获取当天在本月第几周
function weekIndexInMonth() {
//设置时间为本月的1号
let date = new Date((new Date(this).setDate(1)) || (new Date()).setDate(1));
let today = new Date();
let d = today.getDate();
let firstWeekDate;
if (date.getDay() === 0) { // 判断1号是周日
firstWeekDate = 6;
} else { // 判断1号是周一至周六之间
firstWeekDate = date.getDay() - 1;
}
return Math.ceil((d + firstWeekDate) / 7)
},
// 获取本月有几周
function weekInMonthCount() {
//设置时间为本月的1号
let date = new Date((new Date(this).setDate(1)) || (new Date()).setDate(1));
// var date = new Date("2019-06-08");
let firstWeekDate;
if (date.getDay() === 0) { // 判断1号是周日
firstWeekDate = 6;
} else { // 判断1号是周一至周六之间
firstWeekDate = date.getDay() - 1;
}
date.setMonth(date.getMonth() + 1);
date.setDate(0);
// date.getDate();// 本月天数
let monthHasDays = date.getDate() + firstWeekDate;
return Math.ceil(monthHasDays / 7); // 计算本月有几周
},
// 获取日期是某年的第几周
function getWeek(dt) {
// getWeek(`'${year}-${month}-${day}'`)
let d1 = new Date(dt);
let d2 = new Date(dt);
d2.setMonth(0);
d2.setDate(1);
let rq = d1 - d2;
let days = Math.ceil(rq / (24 * 60 * 60 * 1000));
let num = Math.ceil(days / 7);
return num;
},
// 获取某年有几周
function getWeeks(year) {
// 一年第一天是周几
let first = new Date(year, 0, 1).getDay()
if (first == 1) {
first = 0
} else if (first == 0) {
first = 1
} else {
first = 8 - first
}
// 计算一年有多少天
if ((year % 4 == 0 && year % 100 != 0) || (year % 100 == 0 && year % 400 == 0)) {
var allyears = 366
} else {
var allyears = 365
}
// 计算一年有多少周
let week = Math.ceil((allyears - first) / 7) + (first !== 0 ? 1 : 0)
return week
},
周时间
// 周时间
import moment from "moment";
import "moment/locale/zh-cn";
const defaults = {
type: [Object, String, Date],
default: () => {
return moment();
}
}
var columns = [
{
values: [],
className: "column1"
},
{
values: [],
className: "column2"
}
]
var weelys = y => {
const oneDay = moment(y + "-01-01");
let oneWeely = null;
if (oneDay.format("wo") == "1周") {
oneWeely = oneDay.startOf("week").format("YYYY-MM-DD");
} else {
oneDay.add(1, "weeks");
oneWeely = oneDay.startOf("week").format("YYYY-MM-DD");
}
const arr = [];
let weelyStr = "1周";
do {
const d = {};
let time = moment(oneWeely);
d.value = time.format("YYYY-MM-DD");
d.text =
time.format("第wo") +
" " +
time.startOf("week").format("MM-DD") +
"/" +
time.endOf("week").format("MM-DD");
arr.push(d);
oneDay.add(1, "weeks");
oneWeely = oneDay.startOf("week").format("YYYY-MM-DD");
weelyStr = oneDay.format("wo");
} while (weelyStr != "1周" && oneWeely.indexOf(y) > -1);
return arr;
};
export function selectWeeks() {
let defaultData = moment(defaults);
let year = moment().format("YYYY");
columns[0].values = [];
for (let i = year - 10; i < year - 0 + 10; i++) {
columns[0].values.unshift(i);
}
for (let i = 0; i < columns[0].values.length; i++) {
if (columns[0].values[i] == year) {
columns[0].defaultIndex = i;
columns[0].valueKey = i;
break;
}
}
columns[1].values = weelys(year);
for (let i = 0; i < columns[1].values.length; i++) {
if (
moment(columns[1].values[i].value).format("wo") ==
defaultData.format("wo")
) {
columns[1].defaultIndex = i;
columns[1].valueKey = i;
break;
}
}
return columns
}