微信小程序pinker组件使用实现自动相减日期


Posted in Javascript onMay 07, 2020

首先,我这里使用pinker组件代码为

<view class="section">
   <view class="section__title">开始时间</view>
   <picker mode="date" value="{{date}}" start="{{startTime}}" end="2020-09-01" bindchange="bindDateChange">
    <view class="picker">
     <text>{{date}}</text>
     <image src="/images/three.png"></image>
    </view>
   </picker>
  </view>

  <view class="section">
   <view class="section__title">结束时间</view>
   <picker mode="date" value="{{date2}}" start="{{date}}" end="2050-09-01" bindchange="bindDate2Change">
    <view class="picker">
     <text>{{date2}}</text>
     <image src="/images/three.png"></image>
    </view>
   </picker>
  </view>

在这里先声明一下,mode属性有五个,我这里用到的是日期选择器?data,开始时间的默认选择时间为当前日期,通过js时时获取当天的日期

微信小程序pinker组件使用实现自动相减日期

获取当天日期的代码为:

//获取当前时间戳 
  var timestamp = Date.parse(new Date());
  timestamp = timestamp / 1000;
  console.log("当前时间戳为:" + timestamp);

  //获取当前时间 
  var n = timestamp * 1000;
  var date = new Date(n);
  //年 
  var Y = date.getFullYear();
  //月 
  var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1);
  //日 
  var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
  //天
  var H = date.getHours(); 
  //时 
  var m = date.getMinutes(); 
  //分 
  var time = Y + "-" + M + "-" + D;
  var time2 = Y + "-" + M + "-" + D + "-" + H + ":" + m;
  console.log(time)
  console.log(time2)

其次,pinker组件选择的开始时间与结束时间,通过js来相减得到相差的日期

// 获取开始时间、结束时间,相减
  var start_date = new Date(this.data.date.replace(/-/g, "/"));
  var end_date = new Date(this.data.date2.replace(/-/g, "/"));
  var days = end_date.getTime() - start_date.getTime();
  var day = parseInt(days / (1000 * 60 * 60 * 24));
  console.log(day);
  if (day > 0) {
   this.setData({
    num: day
   })
  } else if (day == 0) {
   this.setData({
    num: 1
   })
  } else if (day < 0) {
   this.setData({
    date2:''
   })
  }
 },

这里的知识点是,replace(/-/g, “/”)一般用于格式化日期,如2020-5-5 格式化为 2020/5/5,然后js 可以直接操作这个时间,/g 代表全局,所有的- 都替换。

实现思路:把日期格式化再转成毫秒数,用结束日期的毫秒数减去开始日期的毫秒数,最终转换成天数。

然后再wxml页面的计算时间差的代码为:

<view class="infoDiv">
   <text>请假时长</text>
   <view wx:if="{{date2&&date}}">
    <input auto-focus placeholder="" type="text" value="{{num+'天'}}" disabled="disabled" bindchange="num_data" />
   </view>
   <view wx:else="">
    <input auto-focus placeholder="" type="text" value="" bindchange="num_data" disabled="disabled" />
   </view>

  </view>

这里通过wx:if来判断日期相差数显示对应的效果。在js传数据的时候,通过+“”来拼接变量,如图中我在计算出日期后,自动加上单位:天。{{num+“天”}}

实现效果图为:

微信小程序pinker组件使用实现自动相减日期

微信小程序pinker组件使用实现自动相减日期

好了,这就是简单的使用微信小程序中的自定义组件pinker进行时间选择以及自动进行日期相减。

到此这篇关于微信小程序pinker组件使用实现自动相减日期的文章就介绍到这了,更多相关小程序pinker组件日期内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
把JS与CSS写在同一个文件里的书写方法
Jun 02 Javascript
Javascript Throttle &amp; Debounce应用介绍
Mar 19 Javascript
jquery实现的图片点击滚动效果
Apr 29 Javascript
删除Javascript Object中间的key
Nov 18 Javascript
jQuery实现文本框输入同步的方法
Jun 20 Javascript
JS实现黑色风格的网页TAB选项卡效果代码
Oct 09 Javascript
详解vue嵌套路由-params传递参数
May 23 Javascript
动态统计当前输入内容的字节、字符数的实例详解
Oct 27 Javascript
vue源码解析之事件机制原理
Apr 21 Javascript
Angularjs之ngModel中的值验证绑定方法
Sep 13 Javascript
js canvas实现写字动画效果
Nov 30 Javascript
JavaScript使用canvas绘制随机验证码
Feb 17 Javascript
简单了解JavaScript弹窗实现代码
May 07 #Javascript
angular组件间传值测试的方法详解
May 07 #Javascript
Node.js API详解之 timer模块用法实例分析
May 07 #Javascript
JS面试题中深拷贝的实现讲解
May 07 #Javascript
javascript 代码是如何被压缩的示例代码
May 06 #Javascript
Layui弹框中数据表格中可双击选择一条数据的实现
May 06 #Javascript
Vue SSR 即时编译技术的实现
May 06 #Javascript
You might like
一个简单的PHP&amp;MYSQL留言板源码
2020/07/19 PHP
理解和运用PHP中的多态性[译]
2011/08/02 PHP
ExtJS PropertyGrid中使用Combobox选择值问题
2010/06/13 Javascript
由JavaScript中call()方法引发的对面向对象继承机制call的思考
2011/09/12 Javascript
jQuery获得内容和属性方法及示例
2013/12/02 Javascript
JavaScript中用getDate()方法返回指定日期的教程
2015/06/09 Javascript
BootStrap中的Fontawesome 图标
2017/05/25 Javascript
vue元素实现动画过渡效果
2017/07/01 Javascript
React/Redux应用使用Async/Await的方法
2017/11/16 Javascript
angular6.0开发教程之如何安装angular6.0框架
2018/06/29 Javascript
JS实现图片上传多次上传同一张不生效的处理方法
2018/08/06 Javascript
小程序实现多选框功能
2018/10/30 Javascript
通过实例解析js简易模块加载器
2019/06/17 Javascript
Node.js 实现简单的无侵入式缓存框架的方法
2019/07/21 Javascript
请求时token过期自动刷新token操作
2020/09/11 Javascript
[01:54]TI珍贵瞬间系列(五):压力
2020/08/29 DOTA
[02:42]岂曰无衣,与子同袍!DOTA2致敬每一位守护人
2020/02/17 DOTA
利用Python演示数型数据结构的教程
2015/04/03 Python
详细解读Python中的__init__()方法
2015/05/02 Python
Python操作Redis之设置key的过期时间实例代码
2018/01/25 Python
浅谈python3.x pool.map()方法的实质
2019/01/16 Python
新手入门Python编程的8个实用建议
2019/07/12 Python
python UDP(udp)协议发送和接收的实例
2019/07/22 Python
Python assert语句的简单使用示例
2019/07/28 Python
python matplotlib拟合直线的实现
2019/11/19 Python
浅析python实现动态规划背包问题
2020/12/31 Python
解决Pyinstaller打包软件失败的一个坑
2021/03/04 Python
css3针对移动端卡顿问题的解决(动画性能优化)
2020/02/14 HTML / CSS
详解基于 Canvas 手撸一个六边形能力图
2019/09/02 HTML / CSS
全球最大的服务市场:Fiverr
2017/01/03 全球购物
Speedo速比涛中国官方网站:全球领先泳装运动品牌
2018/04/24 全球购物
大学生毕业求职简历的自我评价
2013/10/24 职场文书
房产继承公证书
2014/04/09 职场文书
党的群众路线批评与自我批评范文
2014/10/16 职场文书
2014年乡镇安全生产工作总结
2014/12/02 职场文书
南京导游词
2015/02/03 职场文书