时间获取整合


// 获取月份天数
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
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值