位置: IT常识 - 正文

【微信小程序】-- 表单组件 - picker 实现日期选择器(五十三)(微信小程序游戏手游排行榜)

编辑:rootadmin
【微信小程序】-- 表单组件 - picker 实现日期选择器(五十三)

推荐整理分享【微信小程序】-- 表单组件 - picker 实现日期选择器(五十三)(微信小程序游戏手游排行榜),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:微信小程序游戏手游排行榜,微信小程序开发公司,微信小程序怎么制作自己的小程序,微信小程序开发平台,微信小程序制作,微信小程序开发公司,微信小程序开发公司,微信小程序怎么制作自己的小程序,内容如对您有帮助,希望把文章链接给更多的朋友!

💌 所属专栏:【微信小程序开发教程】

😀 作  者:我是夜阑的狗🐶

🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询!

💖 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘

文章目录前言一、表单组件1、picker二、实现日期选择器总结前言

  大家好,又见面了,我是夜阑的狗🐶,本文是专栏【微信小程序开发教程】专栏的第53篇文章;   今天开始学习微信小程序的第40天💖💖💖,开启新的征程,记录最美好的时刻🎉,每天进步一点点。   专栏地址:【微信小程序开发教程】, 此专栏是我是夜阑的狗微信小程序开发过程的总结,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。   如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。

一、表单组件

  最近比较忙,所以更新暂时先缓缓,这一篇是穿插进来的,原因是有个朋友问我小程序关于实现日期选择器的一些问题,由于这个我用的不是很多,自己也亲手写了一遍,踩了挺多坑的。接下来就来讲解一下表单组件 - picker 实现日期选择器。话不多说,让我们开始吧,勇敢牛牛不怕困难。

1、picker

  首先简单讲一下 picker 组件的定义,它是从底部弹起的滚动选择器。下面是 picker 组件常用的属性:

属性类型默认值必填说明最低版本header-textstring否选择器的标题,仅安卓可用2.11.0modestringselector否选择器类型1.0.0disabledbooleanfalse否是否禁用1.0.0bindcanceleventhandle否取消选择时触发1.9.90

  除了上述通用的属性,对于不同的 mode,picker 拥有不同的属性。mode 有以下选项:

合法值说明selector普通选择器multiSelector多列选择器time时间选择器date日期选择器region省市区选择器

  待会要用到日期选择器:mode = date ,所以简单了解一下具体参数:

属性名类型默认值说明valuestring当天表示选中的日期,格式为"YYYY-MM-DD"startstring表示有效日期范围的开始,字符串格式为"YYYY-MM-DD"endstring表示有效日期范围的结束,字符串格式为"YYYY-MM-DD"fieldsstringday有效值 year,month,day,表示选择器的粒度bindchangeeventhandlevalue 改变时触发 change 事件,event.detail = {value}

  其中 fields 有效值:

值说明year选择器粒度为年month选择器粒度为月份day选择器粒度为天

  这里参数比较多,所以要一定仔细了解清楚,方便后续开发以及避免踩坑。

二、实现日期选择器

  使用微信小程序的 picker 组件来实现入住日期和离开日期选择功能,可以通过以下步骤来实现:

【微信小程序】-- 表单组件 - picker 实现日期选择器(五十三)(微信小程序游戏手游排行榜)

  Step1、在 WXML 文件中添加两个 picker 组件,分别用于选择入住日期和离开日期。

message.wxml

<view> <view class="date-picker"> <view></view> <picker mode="date" end="{{checkMaxDate}}" value="{{startDateIndex}}" bindchange="bindCheckinDateChange"> <view class="picker-item">入住日期: {{startDateIndex}}</view> </picker> </view> <view> ======== </view> <view class="date-picker"> <view></view> <picker mode="date" start="{{checkMinDate}}" value="{{endDateIndex}}" bindchange="bindCheckoutDateChange"> <view class="picker-item">离开日期: {{endDateIndex}}</view> </picker> </view></view>

  Step2、在 JS 文件中定义变量 startDateIndex 和 endDateIndex,分别用于保存用户选择的入住日期和离开日期的时间戳,还需要 checkMaxDate 来设置入住日期的最大日期范围,checkMinDate 来设置离开日期的的最小日期范围。

  Step3、在设置入住日期和离开日期的 picker 组件时,可以使用 bindchange 事件监听用户选择的日期,并在回调函数中进行处理。具体地,可以在回调函数中通过 setData 方法更新入住日期和离开日期的值,并根据当前选择的日期设置另一个 picker 组件的最小可选日期或者最大可选日期。

  Step4、在 onLoad 方法中,设置离开日期的最小可选日期为明天的日期,并存储在 checkMinDate 中,和入住日期的最大可选日期 checkMaxDate。

  注意:这里 toISOString() 方法返回一个符合 ISO 8601 标准的日期字符串,包括年、月、日、时、分、秒和毫秒等信息。获取到时间不一定我们当前的,想要获取本地的时间就要使用 toLocaleDateString() 方法将日期格式化为字符串,这两种方法获取到时间字符串是不一样的,分别是 2023-4-7,2023/4/7。

message.js

// pages/contact/contact.jsPage({ /** * 页面的初始数据 */ data: { startDateIndexInit: '', checkMaxDate: '', startDateIndex: '', endDateIndexInit: '', checkMinDate: '', endDateIndex: '', }, // 在入住日期 picker 组件的 bindchange 事件回调函数中更新入住日期的值,并根据当前选择的日期设置离开日期的最小可选日期 bindCheckinDateChange: function (e) { const checkinDate = e.detail.value; const todayStr = new Date(checkinDate); const td = new Date(todayStr); td.setDate(td.getDate() + 1); // const td = td.toISOString().substring(0, 10); // const new Date(checkinDate).getTime() + 24 * 60 * 60 * 1000 console.dir('In ======> '+ td.toISOString().substring(0, 10)); this.setData({ startDateIndex: checkinDate, checkMinDate: td.toISOString().substring(0, 10) }); }, // 在离开日期 picker 组件的 bindchange 事件回调函数中更新离开日期的值,并根据当前选择的日期设置入住日期的最大可选日期 bindCheckoutDateChange: function (e) { const checkoutDate = e.detail.value; const yesterdayStr = new Date(checkoutDate); const yd = new Date(yesterdayStr); yd.setDate(yd.getDate() - 1); // console.dir(checkoutDate); console.dir('Out ======> '+ yd.toISOString().substring(0, 10)); if (checkoutDate <= this.data.startDateIndex) { wx.showToast({ title: '离开日期必须晚于入住日期', icon: 'none' }); return; } // new Date(checkoutDate).getTime() - 24 * 60 * 60 * 1000 this.setData({ endDateIndex: checkoutDate, checkMaxDate: yd.toISOString().substring(0, 10) }); }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { const today = new Date(); const tomorrow = new Date(today.getTime() + 24 * 60 * 60 * 1000); console.dir("today ==== "+ today); console.dir("tomorrow ==== "+ tomorrow.toLocaleDateString().substring(0, 10)); this.setData({ // startDateIndexInit: today.getTime(), checkMaxDate: today.toISOString().substring(0, 10), startDateIndex: today.toISOString().substring(0, 10), checkMinDate: tomorrow.toISOString().substring(0, 10), // endDateIndexInit: tomorrow.getTime(), // 设置为明天的日期 endDateIndex: tomorrow.toISOString().substring(0, 10), }); },})

  在上面的代码中,入住日期 picker 组件的值为 startDateIndex,离开日期 picker 组件的值为 endDateIndex。

  在bindCheckinDateChange 方法中,更新入住日期的值为用户选择的日期,并根据该日期设置离开日期的最小可选日期为入住日期的后一天,即 checkinDate 的时间戳加上一天的时间戳值。

  注意:这里有个坑点,pick 组件的 start 或者 end 属性赋值时,别直接把时间戳赋值进去,看下前面的参数表就能知道这里要字符串格式为"YYYY-MM-DD"的字符串。

  在 bindCheckoutDateChange 方法中,更新离开日期的值为用户选择的日期,并判断离开日期是否晚于入住日期。如果不是,弹出提示框并返回;如果是,根据离开日期的值设置入住日期的最大可选日期为离开日期的前一天,即 checkoutDate 的时间戳减去一天的时间戳值。

运行效果:

总结

  感谢观看,这里就是表单组件 - picker 实现日期选择器,如果觉得有帮助,请给文章点个赞吧,让更多的人看到。🌹 🌹 🌹

  也欢迎你,关注我。👍 👍 👍

  原创不易,还希望各位大佬支持一下,你们的点赞、收藏和留言对我真的很重要!!!💕 💕 💕 最后,本文仍有许多不足之处,欢迎各位认真读完文章的小伙伴们随时私信交流、批评指正!下期再见。🎉

更多专栏订阅:

😀 【LeetCode题解(持续更新中)】🚝 【Java Web项目构建过程】💛 【微信小程序开发教程】⚽ 【JavaScript随手笔记】🤩 【大数据学习笔记(华为云)】🦄 【程序错误解决方法(建议收藏)】🚀 【软件安装教程】

订阅更多,你们将会看到更多的优质内容!!

本文链接地址:https://www.jiuchutong.com/zhishi/297344.html 转载请保留说明!

上一篇:头歌-CSS入门(头歌实践教学平台官网)

下一篇:警惕!建信信托暴雷,是否欺骗用户?(建信信托介绍)

  • 联想电脑怎么连接蓝牙耳机(联想电脑怎么连接airpods)

    联想电脑怎么连接蓝牙耳机(联想电脑怎么连接airpods)

  • 如何防止qq追封(如何防止qq被盗?)

    如何防止qq追封(如何防止qq被盗?)

  • 钉钉视频会议能两个群一起吗(钉钉视频会议能投屏到电视吗)

    钉钉视频会议能两个群一起吗(钉钉视频会议能投屏到电视吗)

  • 笔记本电脑不关机就盖上盖子,这样好吗 (笔记本电脑不关机只休眠好不好)

    笔记本电脑不关机就盖上盖子,这样好吗 (笔记本电脑不关机只休眠好不好)

  • oppo手机怎么截视频的一部分画面(oppo手机怎么截屏的4种方法)

    oppo手机怎么截视频的一部分画面(oppo手机怎么截屏的4种方法)

  • 苹果4哪年进入中国(苹果4哪年进入中国市场)

    苹果4哪年进入中国(苹果4哪年进入中国市场)

  • 快手添加的表情找不到(快手添加的表情在哪里)

    快手添加的表情找不到(快手添加的表情在哪里)

  • 打印机状态空闲是什么意思(三星2161打印测试页打印机状态空闲)

    打印机状态空闲是什么意思(三星2161打印测试页打印机状态空闲)

  • 支付宝集五福能开几次(支付宝集五福能合成几个)

    支付宝集五福能开几次(支付宝集五福能合成几个)

  • 集线器是干什么用的(集线器是干什么用的,怎么用?)

    集线器是干什么用的(集线器是干什么用的,怎么用?)

  • 苹果相册可以加密码吗(苹果相册可以加贴纸吗)

    苹果相册可以加密码吗(苹果相册可以加贴纸吗)

  • 小米9pro可以用4g网吗(小米9Pro可以用6a充电线吗)

    小米9pro可以用4g网吗(小米9Pro可以用6a充电线吗)

  • 安卓微信怎么指纹支付(安卓手机微信指纹锁怎么设置)

    安卓微信怎么指纹支付(安卓手机微信指纹锁怎么设置)

  • 魅族16s怎么一键锁屏(魅族16s一键锁屏)

    魅族16s怎么一键锁屏(魅族16s一键锁屏)

  • 苹果xsmax有指纹么(苹果xsmax有指纹识别功能吗)

    苹果xsmax有指纹么(苹果xsmax有指纹识别功能吗)

  • 快手如何解绑手机号不是更换(快手如何解绑手机号)

    快手如何解绑手机号不是更换(快手如何解绑手机号)

  • 抖音屏幕上的字怎么打上去的(抖音屏幕上的字怎么置顶的)

    抖音屏幕上的字怎么打上去的(抖音屏幕上的字怎么置顶的)

  • switch主机怎么初始化(switch主机怎么设置)

    switch主机怎么初始化(switch主机怎么设置)

  • 收藏在手机哪里找(手机收藏的东西在哪里找)

    收藏在手机哪里找(手机收藏的东西在哪里找)

  • 苹果手机下载音乐后存到了哪里(苹果手机下载音乐需要什么软件)

    苹果手机下载音乐后存到了哪里(苹果手机下载音乐需要什么软件)

  • 新版微信支付分在哪

    新版微信支付分在哪

  • 怎样设置微信自动开启(怎样设置微信自动登录电脑)

    怎样设置微信自动开启(怎样设置微信自动登录电脑)

  • 华为手机锁屏怎么不见了(华为手机锁屏怎么录屏)

    华为手机锁屏怎么不见了(华为手机锁屏怎么录屏)

  • 抖音腾讯大王卡免流吗(抖音腾讯大王卡免流量不)

    抖音腾讯大王卡免流吗(抖音腾讯大王卡免流量不)

  • 快手开店需要什么条件(快手开店需要什么资料)

    快手开店需要什么条件(快手开店需要什么资料)

  • 小米9快传在哪里打开(小米手机小米快传怎么打开)

    小米9快传在哪里打开(小米手机小米快传怎么打开)

  • 黑鲨手机语音助手在哪(黑鲨手机语音助手怎么唤醒)

    黑鲨手机语音助手在哪(黑鲨手机语音助手怎么唤醒)

  • 苹果国产屏跟原装屏幕区别(苹果国产屏跟原国产)

    苹果国产屏跟原装屏幕区别(苹果国产屏跟原国产)

  • vue3+vite+typescript出现does not provide an export named ‘xxx‘ 解决方法

    vue3+vite+typescript出现does not provide an export named ‘xxx‘ 解决方法

  • 学生兼职怎么交个人所得税吗
  • 外贸企业出口流程图
  • 产值利税率是什么
  • 小微企业企业所得税税率变化
  • 小规模纳税人的起征点是多少
  • 主税零申报附加税怎样申报
  • 上期有留抵进项税额,本期如何转,如何做账
  • 不动产什么时候可以抵扣进项税额
  • 实收资本在利润表中怎么体现出来
  • 个人挂靠利润如何提取
  • 汇算清缴产生的企业所得税如何做账
  • 公司注销实收资本怎么处理
  • 车间停产期间设施有哪些
  • 原材料入库单运费要怎么计入?
  • 生产企业出口退税流程怎么操作
  • 应纳税额减征额和减免税额一样吗
  • 物业公司税务风险
  • 职工教育经费列支范围及标准
  • 股东退股会计科目
  • 季报企业所得税营业收入本年累计怎么填写
  • 出售固定资产增值税税率最新2022
  • 会务费如何入账
  • 未开票收入缴纳增值税怎么冲减补开发票
  • RegSrvc.exe - RegSrvc是什么进程 有什么用
  • php统计当前在线人数
  • 苹果电脑快速启动键是哪个
  • mcrlnstaller
  • php array_search() 函数使用
  • 固定资产更新改造支出资本化
  • 取得投资是什么意思
  • html简单例子
  • yolov3训练自己的数据超详细
  • 工会经费可以提出来使用吗
  • 网站伪静态有什么用
  • php的oop的理解
  • 优化器总结
  • 子公司提取盈余公积 合并抵消
  • ChatGPT会取代你的岗位吗?
  • dns域名解析两种方式
  • hashmap resize源码
  • 以前年度损益调整借贷方向
  • 逾期包装物押金收入计入什么科目
  • 税控系统维护费普通发票可以全额抵扣吗
  • 长期股权投资的账面价值怎么计算
  • 转账收手续费不
  • mysql中join的用法
  • 无法收到的租金要交房产税吗
  • 托盘入账哪个科目最好
  • sqlserver远程连接失败
  • 库存暂估入账的会计分录
  • 残保金申报基数
  • 存货计划成本法的优点
  • 别的公司代付货款
  • 财政拨款结转是
  • 备查账的登记主要以什么来表述
  • sql server 数据库介绍
  • mysql 大数据处理
  • 64位win7怎么释放为硬件保留的内存?
  • win7开机报错0xc0000098
  • windowsxp教程
  • windowsserver2008无线网不能连接
  • windows8.1玩英雄联盟
  • linux压缩.z
  • linux如何使用
  • win7系统打不开网络和共享中心
  • 怎么配置nodejs
  • samsung s3 gt-19300 开发 键盘回车事件
  • node. js教程
  • fiddler如何抓取app接口的
  • javascript有几种类型
  • javascript用什么运行
  • 广告费属于什么会计科目
  • 电子税务局怎么添加开票员
  • 国税电子税务局官网
  • 西安市经开区管委会官网
  • 宁波增值税普通发票有几联发票
  • 税务局全年绩效分析报告
  • 湖南银税进件中心
  • 小区配电房移交供电局的依据
  • 委托人全权代理
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设