微信小程序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 相关文章推荐
免费空间广告万能消除代码
Sep 04 Javascript
JavaScript中创建对象和继承示例解读
Feb 12 Javascript
jQuery使用slideUp方法实现控制元素缓慢收起
Mar 27 Javascript
javascript关于open.window子页面执行完成后刷新父页面的问题分析
Apr 27 Javascript
js实现仿Discuz文本框弹出层效果
Aug 13 Javascript
基于jquery实现放大镜效果
Aug 17 Javascript
jQuery实现的无限级下拉菜单功能示例
Sep 12 Javascript
JS动态插入脚本和插入引用外部链接脚本的方法
May 21 Javascript
JS实现把一个页面层数据传递到另一个页面的两种方式
Aug 13 Javascript
vue动态添加路由addRoutes之不能将动态路由存入缓存的解决
Feb 19 Javascript
学习node.js 断言的使用详解
Mar 18 Javascript
如何理解Vue前后端数据交互与显示
May 10 Vue.js
简单了解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二维数组转成字符串示例
2014/02/17 PHP
Linux下PHP安装mcrypt扩展模块笔记
2014/09/10 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
基于CI(CodeIgniter)框架实现购物车功能的方法
2018/04/09 PHP
如何在PHP中生成随机数
2020/06/04 PHP
PHP isset()及empty()用法区别详解
2020/08/29 PHP
JavaScript入门教程(6) Window窗口对象
2009/01/31 Javascript
修改file按钮的默认样式实现代码
2013/04/23 Javascript
jQuery实现“扫码阅读”功能
2015/01/21 Javascript
jQuery实现强制cookie过期方法汇总
2015/05/22 Javascript
JavaScript中的条件判断语句使用详解
2015/06/03 Javascript
简单介绍jsonp 使用小结
2016/01/27 Javascript
JS去除空格和换行的正则表达式(推荐)
2016/06/14 Javascript
nodejs socket实现的服务端和客户端功能示例
2017/06/02 NodeJs
详解vue-cli开发环境跨域问题解决方案
2017/06/06 Javascript
Js面试算法详解
2018/04/08 Javascript
[39:52]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第一场
2018/04/04 DOTA
将Emacs打造成强大的Python代码编辑工具
2015/11/20 Python
Python SVM(支持向量机)实现方法完整示例
2018/06/19 Python
使用sklearn之LabelEncoder将Label标准化的方法
2018/07/11 Python
Python重新加载模块的实现方法
2018/10/16 Python
python批量处理文件或文件夹
2020/07/28 Python
从pandas一个单元格的字符串中提取字符串方式
2019/12/17 Python
Vs Code中8个好用的python 扩展插件
2020/10/12 Python
Django如何重置migration的几种情景
2021/02/24 Python
建筑工程技术应届生求职信
2013/11/17 职场文书
管理站站长岗位职责
2013/11/27 职场文书
欢送退休感言
2014/02/08 职场文书
8和9的加减法教学反思
2014/05/01 职场文书
幼儿园家长安全责任书
2014/07/22 职场文书
党支部三会一课计划
2014/09/24 职场文书
公司员工离职证明书
2014/10/04 职场文书
2015年公司中秋节致辞
2015/07/31 职场文书
银行培训心得体会范文
2016/01/09 职场文书
python中super()函数的理解与基本使用
2021/08/30 Python
Python中生成随机数据安全性、多功能性、用途和速度方面进行比较
2022/04/14 Python