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

发布时间 - 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


相关推荐: android nfc常用标签读取总结  如何快速生成橙子建站落地页链接?  JavaScript如何实现错误处理_try...catch如何捕获异常?  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  如何在Windows 2008云服务器安全搭建网站?  Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件  如何在腾讯云服务器快速搭建个人网站?  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  网站制作企业,网站的banner和导航栏是指什么?  Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  java ZXing生成二维码及条码实例分享  详解Android——蓝牙技术 带你实现终端间数据传输  Laravel用户密码怎么加密_Laravel Hash门面使用教程  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  香港网站服务器数量如何影响SEO优化效果?  安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出  JavaScript模板引擎Template.js使用详解  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  如何在阿里云域名上完成建站全流程?  如何快速配置高效服务器建站软件?  Angular 表单中正确绑定输入值以确保提交与验证正常工作  Bootstrap整体框架之JavaScript插件架构  Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  创业网站制作流程,创业网站可靠吗?  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  JS经典正则表达式笔试题汇总  如何在万网自助建站平台快速创建网站?  微信小程序制作网站有哪些,微信小程序需要做网站吗?  如何在万网主机上快速搭建网站?  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  微信公众帐号开发教程之图文消息全攻略  百度输入法ai组件怎么删除 百度输入法ai组件移除工具  ,在苏州找工作,上哪个网站比较好?  中山网站推广排名,中山信息港登录入口?  海南网站制作公司有哪些,海口网是哪家的?  Bootstrap CSS布局之列表  Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程  如何快速生成高效建站系统源代码?  Laravel模型关联查询教程_Laravel Eloquent一对多关联写法  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  Laravel distinct去重查询_Laravel Eloquent去重方法  重庆市网站制作公司,重庆招聘网站哪个好?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  WordPress 子目录安装中正确处理脚本路径的完整指南  简单实现jsp分页  如何快速生成ASP一键建站模板并优化安全性?  如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体