亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JS獲取今天是本月第幾周、本月共幾周、本月有多少天、是今年的第幾周、是今年的第幾天的示例代碼

 更新時(shí)間:2018年12月05日 08:47:17   作者:CN-cheng  
這篇文章主要介紹了JS獲取今天是本月第幾周、本月共幾周、本月有多少天、是今年的第幾周、是今年的第幾天,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

好久沒(méi)有記錄工作中遇到的問(wèn)題,其中的原因之一應(yīng)該是沒(méi)有什么代表性的或者說(shuō)是沒(méi)有網(wǎng)上搜不到答案的,畢竟在大多數(shù)前端中我還是很渺小。今天寫這個(gè)博客就是因?yàn)楣ぷ髦杏龅搅藛?wèn)題而且網(wǎng)上也沒(méi)有找到合適的答案,自己寫了大部分代碼加上借鑒了一些別人的思想,下面就步入正題:

—更新:2018-6-20 加上今天是不是周日的判斷

—更新:2018-7-31 給String添加方法來(lái)實(shí)現(xiàn)調(diào)用,感謝Rainbow_miao的提醒。github地址:https://github.com/zancheng/weekCalculation

JS源碼

判斷規(guī)則

第一周 : 是這個(gè)月的新一周,且不在上個(gè)月最后一周內(nèi)。

// 獲取某年某月的有多少周
String.prototype.weekInMonthCount = function () {
  var date = new Date((new Date(this).setDate(1)) || (new Date()).setDate(1));
  var firstWeekDate = 1;// 默認(rèn)第一周是本月1號(hào) 為了模擬本月1號(hào)是否為本月第1周的判斷
  if (date.getDay() === 1) { // 判斷1號(hào)是周一
    firstWeekDatek = 1;
  } else if (date.getDay() === 0) { // 判斷1號(hào)是周日
    firstWeekDate = 8 - 7 + 1;
  } else { // 判斷1號(hào)是周二至周六之間
    firstWeekDate = 8 - date.getDay() + 1;
  }
  date.setMonth(date.getMonth()+1);
  date.setDate(0);
  var monthHasDays = date.getDate();// 本月天數(shù)
  monthHasDays = date.getDate() - firstWeekDate + 1;
  var hasWeek = Math.ceil(monthHasDays/7); // 計(jì)算本月有幾周
  return hasWeek;
};
// 獲取今天是今年的第幾周
String.prototype.weekIndexInYear = function () {
  var nowDate = new Date(this != '' ? this : new Date());
  var initTime = new Date(this != '' ? this : new Date());
  initTime.setMonth(0); // 本年初始月份
  initTime.setDate(1); // 本年初始時(shí)間
  var differenceVal = nowDate - initTime ; // 今天的時(shí)間減去本年開(kāi)始時(shí)間,獲得相差的時(shí)間
  var todayYear = Math.ceil(differenceVal/(24*60*60*1000)); // 獲取今天是今年第幾天
  var index = Math.ceil(todayYear/7); // 獲取今天是今年第幾周
  return index;
};
// 獲取今天是今年的第幾天
String.prototype.dateIndexInYear = function () {
  var nowDate = new Date(this != '' ? this : new Date());
  var initTime = new Date(this != '' ? this : new Date());
  initTime.setMonth(0); // 本年初始月份
  initTime.setDate(1); // 本年初始時(shí)間
  var differenceVal = nowDate - initTime ; // 今天的時(shí)間減去本年開(kāi)始時(shí)間,獲得相差的時(shí)間
  return Math.ceil(differenceVal/(24*60*60*1000));
};
// 獲取今天是第幾周
String.prototype.weekIndexInMonth = function () {
  var date = new Date(this.trim() != '' ? this : new Date());
  var dateStart = new Date((new Date(this.trim() != '' ? this : new Date()).setDate(1))); // 本月初
  var firstWeek = 1;
  if (dateStart.getDay() === 1) {
    firstWeek = 1;
  } else if (dateStart.getDay() === 0) {
    firstWeek = 8 - 7 + 1;
  } else {
    firstWeek = 8 - dateStart.getDay() + 1;
  }
  var weekIndex = 1;
  var c = date.getDate();
  if (date.getDay() === 1 && date.getDate() < 7) {
    weekIndex = 1;
  } else if (c < firstWeek ) {
    weekIndex = -1;
  } else {
    if (c < 7) {
      weekIndex = Math.ceil(c/7);
    } else {
      c = c - firstWeek + 1;
      if (c%7 === 0) {
        if (dateStart.getDay() !== 6) {
          weekIndex = c/7;
        } else {
          weekIndex = c/7 + 1;
        }
      } else {
        weekIndex = Math.ceil(c/7);
      }
    }
  }
  return weekIndex;
};

方法說(shuō)明及調(diào)用示例

String.prototype.dateIndexInYear

獲取這一天屬于今年的第多少天

默認(rèn)時(shí)間是今天,調(diào)用方法示例:

'2018/10/1'.dateIndexInYear()
返回: 273

String.prototype.weekIndexInYear

獲取這一天屬于今年的第多少周

默認(rèn)時(shí)間是今天,調(diào)用方法示例:

'2018-10-1'.weekIndexInYear()
返回: 39

String.prototype.weekInMonthCount

獲取這一年的這一月的有多少周

默認(rèn)時(shí)間是今天,調(diào)用方法示例:

'2018-10-1'.weekInMonthCount()

返回: 5

String.prototype.weekIndexInMonth

獲取這一周屬于本月第多少周

如果屬于上個(gè)月,返回 -1

默認(rèn)時(shí)間是今天,調(diào)用方法示例:

'2018-10-01'.weekIndexInMonth()
返回: 1

總結(jié)

以上所述是小編給大家介紹的JS獲取今天是本月第幾周、本月共幾周、本月有多少天、是今年的第幾周、是今年的第幾天,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • javascript高級(jí)程序設(shè)計(jì)第二版第十二章事件要點(diǎn)總結(jié)(常用的跨瀏覽器檢測(cè)方法)

    javascript高級(jí)程序設(shè)計(jì)第二版第十二章事件要點(diǎn)總結(jié)(常用的跨瀏覽器檢測(cè)方法)

    javascript高級(jí)程序設(shè)計(jì)第二版第十二章事件要點(diǎn)總結(jié)(常用的跨瀏覽器檢測(cè)方法),需要的朋友可以參考下
    2012-08-08
  • 使用Javascript簡(jiǎn)單計(jì)算器

    使用Javascript簡(jiǎn)單計(jì)算器

    這篇文章主要為大家詳細(xì)介紹了使用Javascript簡(jiǎn)單計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • javascript數(shù)組常見(jiàn)操作方法實(shí)例總結(jié)【連接、添加、刪除、去重、排序等】

    javascript數(shù)組常見(jiàn)操作方法實(shí)例總結(jié)【連接、添加、刪除、去重、排序等】

    這篇文章主要介紹了javascript數(shù)組常見(jiàn)操作方法,結(jié)合實(shí)例形式總結(jié)分析了javascript數(shù)組的連接、添加、刪除、去重、排序等操作,代碼注釋附帶較為詳細(xì)的說(shuō)明,需要的朋友可以參考下
    2019-06-06
  • js href的用法

    js href的用法

    關(guān)于js window.location.href location.href parent.location.href top.location.href 的用法
    2010-05-05
  • JS實(shí)現(xiàn)圖片數(shù)字時(shí)鐘

    JS實(shí)現(xiàn)圖片數(shù)字時(shí)鐘

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)圖片數(shù)字時(shí)鐘,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • js 文件引入實(shí)現(xiàn)代碼

    js 文件引入實(shí)現(xiàn)代碼

    項(xiàng)目前端的文件和后臺(tái)開(kāi)發(fā)分離,只要后臺(tái)開(kāi)發(fā)更新svn前端的js,css文件都會(huì)更新,以前引用的是一個(gè)js文件如AA.js,由于想在項(xiàng)目中引用jquery庫(kù),如果在每個(gè)文件的頭部都引讓他們從新寫入這個(gè)jq文件不太可能
    2010-04-04
  • 關(guān)于ES6中的箭頭函數(shù)超詳細(xì)梳理

    關(guān)于ES6中的箭頭函數(shù)超詳細(xì)梳理

    箭頭函數(shù)可以說(shuō)是es6的一大亮點(diǎn),使用箭頭函數(shù),可以簡(jiǎn)化編碼過(guò)程,是代碼更加的簡(jiǎn)潔,下面這篇文章主要給大家介紹了關(guān)于ES6中箭頭函數(shù)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • Webpack設(shè)置環(huán)境變量的一些誤區(qū)詳解

    Webpack設(shè)置環(huán)境變量的一些誤區(qū)詳解

    這篇文章主要給大家介紹了關(guān)于Webpack設(shè)置環(huán)境變量的一些誤區(qū),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Webpack具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • offsetHeight在OnLoad中獲取為0的現(xiàn)象

    offsetHeight在OnLoad中獲取為0的現(xiàn)象

    需要獲取div的高度時(shí),往往需要用到offsetHeight,有時(shí)會(huì)碰到offsetHeight獲取到為0的現(xiàn)象,感興趣的朋友可以參考下面的代碼片段
    2013-07-07
  • js實(shí)現(xiàn)select下拉框選擇

    js實(shí)現(xiàn)select下拉框選擇

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)select下拉框選擇,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-01-01

最新評(píng)論