微信小程序的日期选择器的实例详解

发布时间 - 2026-01-11 03:28:37    点击率:

微信小程序的日期选择器的实例详解

前言:

关于微信小程序中的日期选择器大家用过都会发现有个很大的问题,就是在2月的时候会有31天,没有进行对闰年的判断等各种情况。看了官方文档提供的源码后进行了一些修改,测试修复了上面所说的bug!

下面源码:

<!---js---》

const date = 
new Date();//获取系统日期

const years = []

const months = []

const days = []

const bigMonth = [1,3,5,7,8,10,12]



//将日期分开写入对应数组



//年

for (let i =
1990; i <= date.getFullYear(); i++) {

years.push(i);

}



//月

for (let i =
1; i <= 12; i++) {

months.push(i);

}



//日

for (let i =
1; i <= 31; i++) {

days.push(i);

}





Page({



/**

* 页面的初始数据

*/

data: {

years: years,

year: date.getFullYear(),

months: months,

month: 2,

days: days,

day: 2,

value: [9999, 
1, 1],

},

showToask: function() {

wx.showToast({

title: '成功',

icon: 'success',

duration: 2000

})

},

//判断元素是否在一个数组

contains: function(arr, obj) {

var i = arr.length;

while(i--) {

if (arr[i] === obj) {

return true;

}

}

return false;

},

setDays: function (day) {

const temp = [];

for(let i =1; i<=day; i++) {

temp.push(i)

}

this.setData({

days: temp,

})

},



showLoading: function () {

wx.showLoading({

title: '加载中...',

}),

setTimeout(function () {

wx.hideLoading()

},2000)

},

//选择滚动器改变触发事件

bindChange: function (e) {

const val = e.detail.value;

//判断月的天数

const setYear = 
this.data.years[val[0]];

const setMonth = 
this.data.months[val[1]];

const setDay = 
this.data.days[val[2]]

// console.log(setYear + '年' + setMonth + '月' + setDay + '日');

//闰年

if (setMonth === 
2) {

if (setYear % 
4 === 0 && setYear % 
100 !== 0) {

// console.log('闰年')

this.setDays(28);

} else {

// console.log('非闰年')

this.setDays(29);

}

}else {

//大月

if (this.contains(bigMonth, setMonth)){

this.setDays(31)

}else {

this.setDays(30)

}

}

this.setData({

year: setYear,

month: setMonth,

day: setDay

})

}


})

<!---wxml--->

与官方文档是一样的!

<view 
style='text-align:center;margin-top:30px;'>{{year}}年{{month}}月{{day}}日</view>

<picker-view
indicator-style="height:50px;"
style='width:100%;height:300px;text-align:center'
value="{{value}}"
bindchange="bindChange">

<picker-view-column>

<view 
wx:for="{{years}}" 
wx:key="year" 
style='line=height:50px;'>

{{item}}年

</view>

</picker-view-column>

<picker-view-column>

<view 
wx:for="{{months}}" 
wx:key="month">

{{item}}月

</view>

</picker-view-column>

<picker-view-column>

<view 
wx:for="{{days}}" 
wx:key="day">

{{item}}日

</view>

</picker-view-column>

</picker-view>

</view>

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# 微信小程序的日期选择器  # 小程序  # 日期选择器  # 微信小程序日期选择器使用详解  # 微信小程序自定义日期选择器  # 微信小程序如何实现精确的日期时间选择器  # 微信小程序日期选择器实例代码  # 微信小程序日期时间选择器使用方法  # 微信小程序 滚动选择器(时间日期)详解及实例代码  # 微信小程序之picker日期和时间选择器  # 微信小程序 选择器(时间  # 日期  # 地区)实例详解  # 微信小程序自定义时间段picker选择器  # 微信小程序实现日期时间筛选器  # 大月  # 文档  # 会有  # 选择器  # 看了  # 有个  # 如有  # 希望能  # 用过  # 在一  # 谢谢大家  # 等各种  # 进行了  # 疑问请  # 加载中  # 就是在  # 是一样的  # day  # showToask  # Page 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 魔方云NAT建站如何实现端口转发?  如何快速搭建自助建站会员专属系统?  Python自动化办公教程_ExcelWordPDF批量处理案例  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  微信小程序 五星评分(包括半颗星评分)实例代码  Laravel如何处理表单验证?(Requests代码示例)  EditPlus中的正则表达式 实战(2)  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  Laravel怎么使用Intervention Image库处理图片上传和缩放  做企业网站制作流程,企业网站制作基本流程有哪些?  在线教育网站制作平台,山西立德教育官网?  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  Laravel中的Facade(门面)到底是什么原理  如何在云主机快速搭建网站站点?  如何用景安虚拟主机手机版绑定域名建站?  如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  Laravel如何实现事件和监听器?(Event & Listener实战)  Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  如何在IIS中新建站点并配置端口与IP地址?  Android Socket接口实现即时通讯实例代码  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  Linux系统命令中tree命令详解  七夕网站制作视频,七夕大促活动怎么报名?  Laravel如何处理文件下载请求?(Response示例)  WEB开发之注册页面验证码倒计时代码的实现  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  JavaScript如何实现错误处理_try...catch如何捕获异常?  如何快速搭建支持数据库操作的智能建站平台?  如何在阿里云虚拟服务器快速搭建网站?  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  动图在线制作网站有哪些,滑动动图图集怎么做?  Laravel观察者模式如何使用_Laravel Model Observer配置  大学网站设计制作软件有哪些,如何将网站制作成自己app?  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  Swift开发中switch语句值绑定模式  黑客入侵网站服务器的常见手法有哪些?  如何快速搭建高效WAP手机网站?  如何打造高效商业网站?建站目的决定转化率  jQuery validate插件功能与用法详解  如何用好域名打造高点击率的自主建站?  如何挑选最适合建站的高性能VPS主机?  详解Android图表 MPAndroidChart折线图  如何在建站之星网店版论坛获取技术支持?  Laravel如何使用Blade模板引擎?(完整语法和示例)