基于Vue的日歷小功能,可根據實際開發情況按每年、每月、每周、進行切換,具體內容如下

<template> <div class="date"> <!-- 年份 月份 --> <div class="month"> <p>{{ currentYear }}年{{ currentMonth }}月</p> </div> <!-- 星期 --> <ul class="weekdays"> <li>一</li> <li>二</li> <li>三</li> <li>四</li> <li>五</li> <li>六</li> <li>日</li> </ul> <!-- 日期 --> <ul class="days"> <li @click="pick(day)" v-for="(day, index) in days" :key="index"> <!--本月--> <span v-if="day.getMonth()+1 != currentMonth" class="other-month">{{ day.getDate() }}</span> <span v-else> <!--今天--> <span v-if="day.getFullYear() == new Date().getFullYear() && day.getMonth() == new Date().getMonth() && day.getDate() == new Date().getDate()" class="active">{{ day.getDate() }}</span> <span v-else>{{ day.getDate() }}</span> </span> </li> </ul> </div></template>js部分:目前默認顯示一周,可根據實際情況更改
<script> export default { name: 'date', data () { return { currentYear: 1970, // 年份 currentMonth: 1, // 月份 currentDay: 1, // 日期 currentWeek: 1, // 星期 days: [], } }, mounted () { }, created () { this.initData(null) }, methods: { formatDate (year, month, day) { const y = year let m = month if (m < 10) m = `0${m}` let d = day if (d < 10) d = `0$iwvjtn8m0` return `${y}-${m}-$iwvjtn8m0` }, initData (cur) { let date = '' if (cur) { date = new Date(cur) } else { date = new Date() } this.currentDay = date.getDate() // 今日日期 幾號 this.currentYear = date.getFullYear() // 當前年份 this.currentMonth = date.getMonth() + 1 // 當前月份 this.currentWeek = date.getDay() // 1...6,0 // 星期幾 if (this.currentWeek === 0) { this.currentWeek = 7 } const str = this.formatDate(this.currentYear, this.currentMonth, this.currentDay)// 今日日期 年-月-日 this.days.length = 0 // 今天是周日,放在第一行第7個位置,前面6個 這里默認顯示一周,如果需要顯示一個月,則第二個循環為 i<= 35- this.currentWeek /* eslint-disabled */ for (let i = this.currentWeek - 1; i >= 0; i -= 1) { const d = new Date(str) d.setDate(d.getDate() - i) // console.log(y:" + d.getDate()) this.days.push(d) } for (let i = 1; i <= 7 - this.currentWeek; i += 1) { const d = new Date(str) d.setDate(d.getDate() + i) this.days.push(d) } }, // 上個星期 weekPre () { const d = this.days[0] // 如果當期日期是7號或者小于7號 d.setDate(d.getDate() - 7) this.initData(d) }, // 下個星期 weekNext () { const d = this.days[6] // 如果當期日期是7號或者小于7號 d.setDate(d.getDate() + 7) this.initData(d) }, // 上一
主站蜘蛛池模板:
乌审旗|
建阳市|
华蓥市|
襄城县|
新丰县|
许昌市|
平定县|
区。|
嵊州市|
江津市|
彭阳县|
和林格尔县|
高青县|
双峰县|
会宁县|
通州市|
临江市|
新闻|
华池县|
娄烦县|
盐池县|
富阳市|
肃北|
奉节县|
余干县|
孙吴县|
银川市|
鄯善县|
安泽县|
松滋市|
翼城县|
巴彦淖尔市|
绥德县|
金秀|
法库县|
宁武县|
拉萨市|
长沙市|
林甸县|
和田市|
吕梁市|