一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - vue.js - vue 根據選擇的月份動態展示日期對應的星期幾

vue 根據選擇的月份動態展示日期對應的星期幾

2022-01-19 14:51豫見陳公子 vue.js

這篇文章主要介紹了vue 如何根據選擇的月份動態展示日期對應的星期幾,幫助大家更好的利用vue框架處理日期需求,感興趣的朋友可以了解下

我等卑微的碼農,依舊還得唱著“你我皆凡人,生在人世間,終日奔波苦,一刻不得閑,既然不是仙,難免有雜念,煩惱放兩旁,工資擺中間,多少男子漢,禿頂又肥胖,加班的日夜,沒有買保險”。

雖一直反抗,卻從未奏效。大老板們是夢想照進現實,我等是夢想撞見黑鍋!

牢騷了那么多,鍋還得背,班還得加,code還得繼續碼!!!

來,把標題中所提到的這個效果給實現一下吧。

原理其實很簡單,先得有一個選擇年月的輸入框吧,這里我用的是Element的DatePicker日期選擇器組件,具體使用方法不多說,自己去看Element的API吧。

vue 根據選擇的月份動態展示日期對應的星期幾

然后就是根據選擇的月份來動態顯示當前月份的每一天了,這里用到了日期對象的兩個方法:setMonth和setDate。

其中,setMonth(month, day) 方法用于設置月份,參數介紹如下:
month:必需。一個表示月份的數值,該值介于 0(一月) ~ 11(十二月) 之間。
day:可選。一個表示月的某一天的數值,該值介于 1 ~ 31 之間(以本地時間計)。在 EMCAScript 標準化之前,不支持該參數。

setDate(day) 方法用于設置一個月的某一天,參數介紹如下:
day:必需。表示一個月中的一天的一個數值(1 ~ 31)。

具體代碼如下:

<template>
<div>
<el-date-picker v-model="month" type="month" @change="monthChange" placeholder="選擇月" />
<p>
 當月的每一天:
 <span v-for="item in everyDay" :key="item" style="margin-right:10px;">{{item}}</span>
</p>
</div>
</template>

<script>
export default {
data() {
return {
 month: "",
 everyDay: []
};
},
mounted(){
let date = new Date(), month = date.getMonth();
this.getEveryDay(date, month);
},
methods: {
monthChange(date) {
 this.getEveryDay(date, date.getMonth());
},
getEveryDay(date, month) {
 //設置月份
 date.setMonth(month + 1);
 //設置一個月的某一天-這里設置為零則取到的日期中的天就會是當月的最后一天(比如,二月份就是28或29,其他月份就是30或31),方便下邊的循環
 date.setDate(0);
 let dayArry = [];
 //獲取月份的某一天
 let day = date.getDate();

 for (let i = 1; i <= day; i++) {
  date.setDate(i);  //如果只獲取當前選擇月份的每一天,則不需要date.setDate(i)只需dayArry.push(i)即可,其中date.setDate(i)是設置當前月份的每一天
  dayArry.push(i + ' ' + this.getWeekday(date.getDay()));  //選中月份的每一天和當天是星期幾
 }

 this.everyDay = dayArry;
},
getWeekday(day){
 return ["周日", "周一", "周二", "周三", "周四", "周五", "周六"][day];
},
}
};
</script>

展示效果如下:

vue 根據選擇的月份動態展示日期對應的星期幾

注意,由于getMonth方法返回的值是從0開始的,所以如果要想獲得正確的月份,需要在返回的值的基礎上加1。而setDate這里有一點特殊,需要詳細說明一下,setDate用于設置一個月的某一天,比如setDate(1)就是設置一個月的第一天,setDate(10)就是設置一個月的第十天。而由于眾所周知的原因,月份可能會有28天或29天或30天或31天,如果讓我們自己去寫代碼判斷,又太過于繁瑣,此時setDate(0)的牛逼之處就顯示出來了(官方給出的setDate的參數介于1-31之間,將0給無情地拋棄了,零兄此時悲傷的高歌:無情的世界無情的你,你把老子當成手中的垃圾),setDate(0)設置的是一個月的最后一天,甭管這一天是28還是29,亦或是30或31(零兄此時高喊:以前你對我愛答不理,現在讓你高攀不起?。笤偻ㄟ^getDate方法來獲取我們已經設置好的一個月份的最后一天,最后來上一個for循環,將每一天給塞進一個數組中,就可以打完收工!

當然,我們還可以不展示每一天對應的是星期幾,只將每周的周六周日所對應的那兩天給標紅展示,代碼只是做了一點小修改:

<template>
<div style="margin:50px;">
<el-date-picker v-model="month" type="month" @change="monthChange" placeholder="選擇月" />
<p style="margin-top:10px;">
 當月的每一天:
 <span v-for="item in everyDay" :key="item" style="margin-right:10px;" v-html="item"></span>
</p>
</div>
</template>

<script>
export default {
data() {
return {
 month: "",
 everyDay: []
};
},
mounted(){
let date = new Date(), month = date.getMonth();
this.getEveryDay(date, month);
},
methods: {
monthChange(date) {
 this.getEveryDay(date, date.getMonth());
},
getEveryDay(date, month) {
 //設置月份
 date.setMonth(month + 1);
 //設置一個月的某一天-這里設置為零則取到的日期中的天就會是當月的最后一天(比如,二月份就是28或29,其他月份就是30或31),方便下邊的循環
 date.setDate(0);
 let dayArry = [];
 //獲取月份的某一天
 let day = date.getDate();

 for (let i = 1; i <= day; i++) {
  date.setDate(i);
  if(date.getDay() == 0 || date.getDay() == 6){
   dayArry.push('<i class="red">' + i + '</i>');
  }else{
   dayArry.push(i);
  }
 }

 this.everyDay = dayArry;
},
}
};
</script>
<style>
.red{color:red;font-style:normal;}
</style>

展示效果如下:

vue 根據選擇的月份動態展示日期對應的星期幾

作者:小壞

出處:http://tnnyang.cnblogs.com

以上就是vue 根據選擇的月份動態展示日期對應的星期幾的詳細內容,更多關于vue 選擇月份動態展示日期的資料請關注服務器之家其它相關文章!

原文鏈接:https://www.cnblogs.com/tnnyang/p/12187257.html

延伸 · 閱讀

精彩推薦
  • vue.jsVue多選列表組件深入詳解

    Vue多選列表組件深入詳解

    這篇文章主要介紹了Vue多選列表組件深入詳解,這個是vue的基本組件,有需要的同學可以研究下...

    yukiwu6752022-01-25
  • vue.js用vite搭建vue3應用的實現方法

    用vite搭建vue3應用的實現方法

    這篇文章主要介紹了用vite搭建vue3應用的實現方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下...

    Asiter7912022-01-22
  • vue.jsVue中引入svg圖標的兩種方式

    Vue中引入svg圖標的兩種方式

    這篇文章主要給大家介紹了關于Vue中引入svg圖標的兩種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的...

    十里不故夢10222021-12-31
  • vue.js詳解vue 表單綁定與組件

    詳解vue 表單綁定與組件

    這篇文章主要介紹了vue 表單綁定與組件的相關資料,幫助大家更好的理解和學習使用vue框架,感興趣的朋友可以了解下...

    Latteitcjz6432022-02-12
  • vue.js梳理一下vue中的生命周期

    梳理一下vue中的生命周期

    看過很多人講vue的生命周期,但總是被繞的云里霧里,尤其是自學的同學,可能js的基礎也不是太牢固,聽起來更是吃力,那我就已個人之淺見,以大白話...

    CRMEB技術團隊7992021-12-22
  • vue.jsVue2.x-使用防抖以及節流的示例

    Vue2.x-使用防抖以及節流的示例

    這篇文章主要介紹了Vue2.x-使用防抖以及節流的示例,幫助大家更好的理解和學習使用vue框架,感興趣的朋友可以了解下...

    Kyara6372022-01-25
  • vue.jsVue2.x 項目性能優化之代碼優化的實現

    Vue2.x 項目性能優化之代碼優化的實現

    這篇文章主要介紹了Vue2.x 項目性能優化之代碼優化的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋...

    優小U9632022-02-21
  • vue.jsVue項目中實現帶參跳轉功能

    Vue項目中實現帶參跳轉功能

    最近做了一個手機端系統,其中遇到了父頁面需要攜帶參數跳轉至子頁面的問題,現已解決,下面分享一下實現過程,感興趣的朋友一起看看吧...

    YiluRen丶4302022-03-03
主站蜘蛛池模板: 九草视频在线 | 免费国产高清视频 | 四虎www| 校园纯肉H教室第一次 | 小泽玛丽av无码观看 | 99热这里只有精品国产在热久久 | 欧美国产日本精品一区二区三区 | 情侣奴伺候女王第2部分小说 | 久久亚洲成a人片 | 成人快插 | 国产一区二区精品久久 | 亚洲第一色视频 | 成人人免费夜夜视频观看 | 国产精品成人免费观看 | 国产在线精品99一卡2卡 | 热热99| 亚洲欧美日韩国产一区二区精品 | 亚洲成av人在线视 | 丝瓜污污 | 亚洲AV无码国产精品色午夜情 | 久久理论片迅播影院一级 | 亚洲区精品久久一区二区三区 | 大陆男男gayxxxxvideo | 国产成人无精品久久久久国语 | 无限资源在线观看高清 | 亚洲人成伊人成综合网久久 | 亚洲精品在线免费看 | 亚洲人成激情在线播放 | 武侠古典久久亚洲精品 | 国产高清在线视频一区二区三区 | 黄色a∨| 好大好深好舒服 | 国内免费高清视频在线观看 | 亚洲免费国产 | katsuniav在线播放 | 日本艳鉧动漫1~6完整版在 | 色老板在线视频 | 亚洲欧美成人综合在线 | 精品无码人妻一区二区免费AV | 范冰冰a级一级特级毛片 | 9966久久精品免费看国产 |