当前位置: 首页 > news >正文

在线音乐网站开发php上海资格证报名网站

在线音乐网站开发php,上海资格证报名网站,建筑信息平台查询,沈阳凯鸿网站建设前言 最近在日常鸿蒙开发过程中,经常会使用一些时间选择器,鸿蒙官方提供的时间选择器满足不了需求,所以自己动手自定义一些经常会使用到的时间选择器,希望能帮到你,建议点赞收藏! 实现效果 需求分析 默认…

前言

最近在日常鸿蒙开发过程中,经常会使用一些时间选择器,鸿蒙官方提供的时间选择器满足不了需求,所以自己动手自定义一些经常会使用到的时间选择器,希望能帮到你,建议点赞收藏!

实现效果

需求分析

  1. 默认选中日期为当前时间。
  2. 支持精确到时分。
  3. 注意闰年的计算。

技术实现

  1. 首先要想实现时间选择器,需要使用一个上下可以滚动的控件,这里使用鸿蒙官方提供的 TextPicker,TextPicker 控件支持内容的上下滚动,可以用来显示年月日的选择器,确定了控件后,先计算日期。
 new Promise<string[]>(async (resolve: (data: Array<string>) => void, reject) => {let list: Array<string> = []for (let start = this.currentYear; start <= this.currentYear + 1; start++) {//月份for (let i = (start == this.currentYear?this.startMonth:1); i < 13; i++) {let day: number = 0if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12) {day = 31} else if (i == 2) {//闰年if (start % 400 == 0 || (start % 4 == 0 && start % 100 > 0)) {day = 29}// //平年else {day = 28}} else {day = 30}for (let j = ((start == this.currentYear&& i == this.startMonth)?this.startDay:1); j <= day; j++) {list.push(start + "-" + (i).toString().padStart(2,"0") + "-" + j.toString().padStart(2,"0"))}}}resolve(list)}).then((result: Array<string>) => {this.timeList = result})

由于计算日期是比较耗时的操作,这里使用 Pormise 处理日期的计算,特别需要注意闰年的日期计算,这里以 1 年为周期。

  1. 根据计算得到的日期数据集合,使用 TextPicker 显示年月日,同时默认选中当前时间 choseDay。
 TextPicker({ range: this.timeList, value: this.choseDay }).pickerStyle().onChange((value, index) => {this.choseDay = value.toString()}).width(105)
  1. 计算时分数据。
 for (let i = 0; i < 60; i=i+this.skipMinute) {this.minuteList.push((i<10?"0"+i:i).toString().concat(this.isShowUnit?"分":""))}for (let i = 0; i < 24; i++) {this.hourList.push((i<10?"0"+i:i).toString().concat(this.isShowUnit?"时":""))}
  1. 分别使用 TextPicker 显示时分。
 TextPicker({range: this.hourList,value:this.currentHour+""}).pickerStyle().onChange((value,index)=>{this.selectHour = value+""this.onChange(this.selectHour.concat(":"+this.selectMinute))})TextPicker({range: this.minuteList,value:this.currentMinute+""}).pickerStyle().onChange((value,index)=>{this.selectMinute = value.toString()this.onChange(this.selectHour+":"+value)})
  1. 要让时间选择器默认选择当前时间时,需要注意选择器的格式为"2012-01-01",需要在计算时不足 10 时补 0。否则时间选择器不会默认选中当前时间。
  2. 鸿蒙官方的 Date 类默认提供的月份是从 0 开始的,也就是说通过 data.getUTCMoth()获取的月份默认范围为 [0,11],而选择器需要显示的是 [1,12],这里需要手动处理。

总结

自定义时间选择器看似简单,其实需要注意的地方不少,时间的计算,时间的显示格式,默认选中当前时间等。都需要开发者在日常开发中注意计算细节。看到这里相信你已经学会了怎么自定义一个时间选择器了,快去动手试试吧!

http://www.dtcms.com/a/513185.html

相关文章:

  • 企业网站建设协议淘宝上可以做网站吗
  • 【JDBC】实战 养老中心护理项目的增删改查
  • 智慧校园顶层规划设计方案PPT(62页)
  • MATLAB | 函数或变量无法识别 / 函数缺失
  • 做网站用笔记本电脑wordpress 大内存
  • qq刷赞网站怎么做的网页策划案
  • 邯郸做网站多少钱企业网站的建立联系方式
  • 汕头网站建设培训公司免费微信网站制作
  • 新建网站推广给企业海口网站建设哪个好薇
  • jmeter测试dubbo接口
  • AI体测设备哪家好供应商
  • 网上做预算的网站宿州集团网站建设
  • 微信网站怎么做的好处站长统计性宝app
  • 网商网站怎么做合肥建站网站模板
  • 从零开始学阿里云服务器安全管理:防攻击、防泄漏、防漏洞
  • Berachain 推出原生借贷板块 BEND,为 PoL 生态进一步注入资金循环能力
  • 深圳罗湖外贸网站建设怎么做网站网站
  • 4.5.更新数据
  • 网站新闻更新怎么设计wordpress标题调用标签
  • HPjtune.jar 使用教程(附下载与调优步骤)​
  • 松江网站建设培训费用视频制作软件哪个好用
  • QCResUNet:体素级与受试者级联合的分割质量预测|文献速递-文献分享
  • 020网站建设合同范本邢台公司网站建设
  • 软考 系统架构设计师系列知识点之杂项集萃(177)
  • 做网站如何通过流量赚钱重庆建个网站需要多少钱?
  • AI进化论 —— LeNet 论文学习
  • 银河麒麟Kylin申威SW64系统安装 rpcbind-1.2.5-2.p01.ky10.sw_64.rpm 方法
  • 太原做网站排名几十张照片合成视频
  • 徐州企业建站模板房天下搜房网官网
  • 华为OD机试C卷 - 会议室占用时间段 - 区间合并 - (Java C++ JavaScript Python)