微信小程序日期选择器显示当前系统年月日时分

小程序vant-weapp的日期选择器的使用(年月日时分)

话不多说,记录一下这个框架的使用~小程序使用轻量、可靠的小程序 UI 组件库 vant-weapp
Github源码:https://github.com/youzan/vant-weapp
中文文档:https://youzan.github.io/vant-weapp/#/intro


1:打开微信开发者工具,填写自己的appid和项目名称,选择不使用云服务,新建一个项目。

image

image

2:右击在选择在终端打开

image

进入项目的根目录底下,注意,一定要进入根目录哦,使用cd …/返回上一级目录~

image

3:小程序已经支持使用 npm 安装第三方包,
这里通过 npm 安装

   1、第一步:npm init

   2、第二步:npm install --production

   3、第三步: npm i @vant/weapp -S --production
      或者  npm i vant-weapp -S --production

image

image

image

这里需要注意一下
npm i vant-weapp -S --production或者npm i @vant/weapp -S --production
引入的区别

使用npm i vant-weapp安装的时候,到时候在在app.json或index.json中引入组件,需要使用这样的路径

{
  "usingComponents": {
    "van-button": "../../miniprogram_npm/vant-weapp/button/index"
  }
}

使用npm i @vant/weapp安装的时候,到时候在在app.json或index.json中引入组件,需要使用这样的路径(推荐,因为这个可以直接抄文档,不需要改变引入路径的~)

{
"usingComponents": {
  "van-button": "@vant/weapp/button/index"
}
}

4:在微信开发工具执行npm 构建,点击工具里面,构建npm

image

构建过程需要等待一会儿,不要捉急

image

构建完会生成一个miniprogram_npm文件夹
如果构建完如果编译报错,再构建一次就好了

image

话不多说,来看看小程序vant-weapp的日期选择器的使用

日期选择器文档参照一下

https://youzan.github.io/vant-weapp/#/datetime-picker

5:使用DatetimePicker 时间选择组件

选择日期格式如下:

2021-06-25 9:29

参考代码:
test.wxml

<view>当前选择:{{currentChoose}}</view>
<button bind:tap="openPicker">打开选择器</button>
<van-action-sheet show="{{ show }}" bind:close="onClose" bind:getuserinfo="onGetUserInfo">
  <van-datetime-picker type="datetime" value="{{ currentDate }}" min-date="{{ minDate }}" max-date="{{ maxDate }}" bind:cancel="onCancel"
    bind:confirm="onConfirm"  bind:change="onChange" />
</van-action-sheet>

test.js


const app = getApp()
Page({
  data: {
    minHour: 0,
    maxHour: 24,
    minDate: new Date(1990,1,1).getTime(),
    maxDate: new Date(2099, 12, 31).getTime(),
    currentDate: new Date().getTime(),
    show: false,
    currentChoose: ''
  },
  openPicker() {
    this.setData({ show: true })
  },
  onConfirm(e) {
    this.setData({ show: false, currentChoose: this.formatDate(new Date(e.detail)) })
  },
  onClose() {
    this.setData({ show: false })
  },
  onCancel() {
    this.setData({ show: false })
  },
  formatDate(date) {
    let taskStartTime
    if (date.getMonth() < 9) {
      taskStartTime = date.getFullYear() + "-0" + (date.getMonth() + 1) + "-"
    } else {
      taskStartTime = date.getFullYear() + "-" + (date.getMonth() + 1) + "-"
    }
    if (date.getDate() < 10) {
      taskStartTime += "0" + date.getDate()
    } else {
      taskStartTime += date.getDate()
    }
    taskStartTime += " " + date.getHours() + ":" + date.getMinutes()
    this.setData({
      taskStartTime: taskStartTime,
    })
    return taskStartTime;
  },
})

test.json

{
  "usingComponents": {
    "van-datetime-picker": "@vant/weapp/datetime-picker/index",
    "van-action-sheet": "@vant/weapp/action-sheet/index"
  }
}

结果:
点击打开选择器的时候
日期选择器的组件会从底部弹框弹出
可以选择自己想要的时间,然后将时间显示在页面上
或者传递给后端都可以
根据自己的需求进行修改~~~

以上能够使用年月日时分的组件了
有的时候
项目上会遇到这样的需求
需要将当前的时间默认显示出来
微信小程序日期选择器显示当前系统年月日时分

其实很简单
在前面的文章里面就已经提到了
参考之前写的文章
我们这里需要用到utils

可以将一些公共的代码抽离成为一个单独的 js (utils.js)文件,作为一个模块;
模块只有通过 module.exports 或者 exports 才能对外暴露接口。
所以当你在util.js里封装的方法想要在外部使用的话,必须通过 module.exports 或者 exports 对外暴露
这就和CommonJS 模块化标准一致

参考一下之前写的
微信小程序显示当前系统年月日时分秒
https://blog.csdn.net/qq_36538012/article/details/108143274

1:打开项目里面默认生成的util.js
这里可以看到,代码已经写好了,我们只需要引用就行了

const formatTime = date => {
  const year = date.getFullYear()
  const month = date.getMonth() + 1
  const day = date.getDate()
  const hour = date.getHours()
  const minute = date.getMinutes()
  //const second = date.getSeconds()

  return `${[year, month, day].map(formatNumber).join('-')} ${[hour, minute].map(formatNumber).join(':')}`
}

const formatNumber = n => {
  n = n.toString()
  return n[1] ? n : `0${n}`
}

module.exports = {
  formatTime
}

2:开始写代码
打开文章上面开始写好的test.wxml的demo,写一个可以显示时间的标签

<view>当前选择:{{currentChoose}}</view>

3:最重要的是index.js的代码
要引入上面默认的util.js
在调用函数时,传入new Date()参数,返回值是日期和时间
再通过setData更改Page()里面的data,动态更新页面的数据

var util = require('../../utils/util.js');

// 调用函数时,传入new Date()参数,返回值是日期和时间
// 再通过setData更改Page()里面的data,动态更新页面的数据

 onLoad: function() {
    // 调用函数时,传入new Date()参数,返回值是日期和时间
    var time = util.formatTime(new Date());
    // 再通过setData更改Page()里面的data,动态更新页面的数据
    this.setData({
      currentChoose: time
    });
  },

4:demo例子
test.wxml例子

<view>当前选择:{{currentChoose}}</view>
<button bind:tap="openPicker">打开选择器</button>
<van-action-sheet show="{{ show }}" bind:close="onClose" bind:getuserinfo="onGetUserInfo">
  <van-datetime-picker type="datetime" value="{{ currentDate }}" min-date="{{ minDate }}" max-date="{{ maxDate }}" bind:cancel="onCancel"
    bind:confirm="onConfirm"  bind:change="onChange" />
</van-action-sheet>

test.js例子

var util = require('../../utils/util.js');
const app = getApp()
Page({
  data: {
    minHour: 0,
    maxHour: 24,
    minDate: new Date(1990, 1, 1).getTime(),
    maxDate: new Date(2099, 12, 31).getTime(),
    currentDate: new Date().getTime(),
    show: false,
    currentChoose: ''
  },
  onLoad: function() {
    // 调用函数时,传入new Date()参数,返回值是日期和时间
    var time = util.formatTime(new Date());
    // 再通过setData更改Page()里面的data,动态更新页面的数据
    this.setData({
      currentChoose: time
    });
  },

  openPicker() {
    this.setData({
      show: true
    })
  },
  onConfirm(e) {
    this.setData({
      show: false,
      currentChoose: this.formatDate(new Date(e.detail))
    })
  },
  onClose() {
    this.setData({
      show: false
    })
  },
  onCancel() {
    this.setData({
      show: false
    })
  },
  formatDate(date) {
    let taskStartTime
    if (date.getMonth() < 9) {
      taskStartTime = date.getFullYear() + "-0" + (date.getMonth() + 1) + "-"
    } else {
      taskStartTime = date.getFullYear() + "-" + (date.getMonth() + 1) + "-"
    }
    if (date.getDate() < 10) {
      taskStartTime += "0" + date.getDate()
    } else {
      taskStartTime += date.getDate()
    }
    taskStartTime += " " + date.getHours() + ":" + date.getMinutes()
    this.setData({
      taskStartTime: taskStartTime,
    })
    return taskStartTime;
  },
})

效果显示
微信小程序日期选择器显示当前系统年月日时分
完成

在这里插入图片描述

### 回答1: 微信小程序中的Picker组件可以实现选择年月日时分秒的功能。 首先,我们需要在小程序的页面中引入Picker组件,并在wxml文件中定义一个Picker组件的容器,例如: ```html <view class="picker-container"> <picker mode="date" bindchange="onDateChange"> <view class="picker-content">{{selectedDate}}</view> </picker> </view> ``` 上述代码中,使用`picker`标签定义了一个Picker组件,设置`mode`属性为`date`表示选择日期。`bindchange`属性绑定了一个事件处理函数`onDateChange`,用于在选择日期时触发相应的操作。`picker`标签内的`view`标签可以用来显示选择的日期。 接下来,在小程序的页面对应的js文件中,我们需要定义`onDateChange`事件处理函数,并在函数中处理年月日时分秒的选择。例如: ```javascript Page({ data: { selectedDate: '' }, onDateChange(e) { const value = e.detail.value; this.setData({ selectedDate: value }); // 在这里可以继续添加代码处理选中的年月日时分秒 } }); ``` 上述代码中,`onDateChange`事件处理函数获取了选择的日期信息,将其保存在`selectedDate`数据中,然后可以在函数体内继续添加代码,处理选中的年月日时分秒。 总结起来,通过Picker组件的引入和事件处理函数的编写,我们可以在微信小程序中实现年月日时分秒的选择功能。 ### 回答2: 微信小程序的picker组件是一种方便用户选择日期和时间的工具。其中,年月日时分秒是picker所支持的不同选择项。 在微信小程序中使用picker组件,我们可以设置mode属性来定义选择器的模式。为了选择年月日时分秒,我们可以将mode属性设置为"datetime"。 在picker的使用过程中,我们可以通过设置start和end属性来限制可选择的日期和时间范围。例如,我们可以设置start为当前日期时间,end为未来某个日期时间,以确保用户只能选择当前时间以后的日期和时间。 通过以上设置,当用户点击picker组件时,会弹出一个滚动选择器,分为年、月、日、时、分和秒六个滚动列表。用户可以通过滑动这些列表来选择所需的日期和时间。 选择器的每个滚动列表默认都有一个固定的范围,比如年份范围通常为当前年份加减10年。用户可以通过滚动列表来选择他们想要的年、月、日、时、分和秒。 当用户完成选择后,我们可以通过绑定picker的change事件来获取用户所选的日期和时间。在change事件的回调函数中,我们可以通过event.detail.value来获取用户选择的日期和时间值。 综上所述,微信小程序的picker组件可以方便地实现年月日时分秒的选择功能。通过设置适当的属性和监听change事件,我们可以根据用户的选择来进行相应的操作。无论是用于预约、倒计时或者其他时间相关的功能,picker组件都能够满足用户的需求。 ### 回答3: 微信小程序中的picker组件可以用来选择年月日时分秒。在使用picker组件时,我们可以通过设置mode属性为'date'来选择年月日,设置为'time'来选择时分秒,还可以设置为'dateTime'来选择年月日时分秒。 当设置mode属性为'date'时,picker会显示一个日期选择器,我们可以通过设置start和end属性来限制可以选择的日期范围。例如,设置start为'2010-01-01',end为'2022-12-31',用户只能在这个日期范围内进行选择。选择的日期将会以字符串的形式返回。 当设置mode属性为'time'时,picker会显示一个时间选择器,可以选择时分秒。同样,我们可以通过设置start和end属性来限制可选择的时间范围。选择的时间将会以字符串的形式返回。 当设置mode属性为'dateTime'时,picker会显示一个日期时间选择器,可以选择年月日时分秒。同样,我们可以通过设置start和end属性来限制可选择的日期时间范围。选择的日期时间将会以字符串的形式返回。 在使用picker时,可以通过bindchange属性来监听用户选择的值的变化,从而执行相应的代码逻辑。例如,当选择器的值发生变化时,可以将选择的值存储在数据中,并更新页面的展示内容。 总之,微信小程序的picker组件提供了便捷的年月日时分秒选择功能,在开发时可以根据实际需求设置mode属性,并通过监听用户选择的值的变化来处理相应的业务逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值