在 uni-app 中,可以使用 picker 组件来实现选择时间范围的功能。在 picker 组件的 change 事件中,可以根据选择的开始时间来动态改变结束时间的可选范围,同样地,根据选择的结束时间来动态改变开始时间的可选范围。

下面是一个示例代码,演示了如何实现选择时间范围的功能:

<template>
  <view>
    <picker mode='time' @change='onStartTimeChange' :value='startTime'>
      <view>{{ startTime }}</view>
    </picker>
    <picker mode='time' @change='onEndTimeChange' :value='endTime'>
      <view>{{ endTime }}</view>
    </picker>
  </view>
</template>

<script>
export default {
  data() {
    return {
      startTime: '00:00',
      endTime: '23:59',
    };
  },
  methods: {
    onStartTimeChange(event) {
      const startTime = event.mp.detail.value; // 获取选择的开始时间
      const startHour = parseInt(startTime.split(':')[0]); // 提取小时
      const startMinute = parseInt(startTime.split(':')[1]); // 提取分钟

      // 根据选择的开始时间动态改变结束时间的可选范围
      const newEndTime = [];
      for (let hour = startHour; hour <= 23; hour++) {
        for (let minute = startMinute; minute < 60; minute++) {
          // 格式化小时和分钟为2位数
          const formattedHour = hour.toString().padStart(2, '0');
          const formattedMinute = minute.toString().padStart(2, '0');
          newEndTime.push(`${formattedHour}:${formattedMinute}`);
        }
      }
      this.endTime = newEndTime;
    },
    onEndTimeChange(event) {
      const endTime = event.mp.detail.value; // 获取选择的结束时间
      const endHour = parseInt(endTime.split(':')[0]); // 提取小时
      const endMinute = parseInt(endTime.split(':')[1]); // 提取分钟

      // 根据选择的结束时间动态改变开始时间的可选范围
      const newStartTime = [];
      for (let hour = 0; hour <= endHour; hour++) {
        for (let minute = 0; minute <= endMinute; minute++) {
          // 格式化小时和分钟为2位数
          const formattedHour = hour.toString().padStart(2, '0');
          const formattedMinute = minute.toString().padStart(2, '0');
          newStartTime.push(`${formattedHour}:${formattedMinute}`);
        }
      }
      this.startTime = newStartTime;
    },
  },
};
</script>

在上述代码中,使用 picker 组件来选择开始时间和结束时间。在 onStartTimeChange 方法中,根据选择的开始时间来动态生成结束时间的可选范围。在 onEndTimeChange 方法中,根据选择的结束时间来动态生成开始时间的可选范围。这样,当选择开始时间时,结束时间会变成选择的开始时间之后的时间;当选择结束时间时,开始时间会变成选择的结束时间之前的时间。

注意:上述代码仅为示例,实际需根据具体需求进行适当修改。

Uni-app 时间范围选择器组件:限制开始时间和结束时间

原文地址: https://www.cveoy.top/t/topic/qxqv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录