开发者社区 问答 正文

微信小程序日期只允许选择某2天日期,其他不能选择?

求助各位大神,微信小程序开发,表单中日期选择器中怎么去限制选择的日期呢?比如:登录小程序是2020-02-02,用户填写表单时间只能选择2020-02-01和当天 ,前后两天,其他日期是选择不了的。还得是实时更新。这样的可以实现吗? 我用的yu原始代码现在能正常xiansh显示2020yini一年的日期,现在我怎么才能实现每次用户登录录入时间是,只能选择昨天和今天得时间? 1、.wxml 1.png

  1. .js

2.png

展开
收起
王妮宝 2020-02-03 14:14:26 1427 分享 版权
阿里云 AI 助理回答

要实现微信小程序中日期选择器限制用户只能选择昨天和今天的日期,可以通过 my.datePicker 接口的参数配置来完成。以下是详细的实现步骤和代码示例:


1. 配置日期范围

根据需求,您需要动态计算当前日期(今天)和前一天(昨天),并将这两个日期设置为 startDateendDate 参数的值。这样可以确保用户只能选择昨天和今天的日期。


2. 实现步骤

2.1 动态计算日期

在 JavaScript 中,使用 Date 对象动态获取当前日期和前一天的日期,并将其格式化为 yyyy-MM-dd 格式。

function getFormattedDate(date) {
  const year = date.getFullYear();
  const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始,需加1
  const day = String(date.getDate()).padStart(2, '0');
  return `${year}-${month}-${day}`;
}

// 获取今天的日期
const today = new Date();
const todayFormatted = getFormattedDate(today);

// 获取昨天的日期
const yesterday = new Date();
yesterday.setDate(today.getDate() - 1); // 当前日期减1天
const yesterdayFormatted = getFormattedDate(yesterday);

2.2 调用 my.datePicker 接口

将动态计算的日期范围传递给 my.datePickerstartDateendDate 参数,限制用户只能选择昨天和今天的日期。

Page({
  datePicker() {
    // 动态计算日期范围
    const today = new Date();
    const yesterday = new Date();
    yesterday.setDate(today.getDate() - 1);

    const todayFormatted = getFormattedDate(today);
    const yesterdayFormatted = getFormattedDate(yesterday);

    // 调用日期选择器
    my.datePicker({
      format: 'yyyy-MM-dd', // 返回的日期格式
      currentDate: todayFormatted, // 初始选择的日期,默认为今天
      startDate: yesterdayFormatted, // 最小可选日期,昨天
      endDate: todayFormatted, // 最大可选日期,今天
      success: (res) => {
        my.alert({
          title: '选择的日期',
          content: res.date, // 用户选择的日期
        });
      },
      fail: () => {
        my.showToast({
          content: '日期选择失败',
        });
      },
    });
  },
});

// 辅助函数:格式化日期
function getFormattedDate(date) {
  const year = date.getFullYear();
  const month = String(date.getMonth() + 1).padStart(2, '0');
  const day = String(date.getDate()).padStart(2, '0');
  return `${year}-${month}-${day}`;
}

3. 页面结构与样式

3.1 WXML 文件

在页面中添加一个按钮,用于触发日期选择器。

<view class="page">
  <view class="page-section">
    <button type="primary" onTap="datePicker">选择日期</button>
  </view>
</view>

3.2 WXSS 文件

调整按钮样式以提升用户体验。

button {
  margin-top: 20rpx;
}

4. 注意事项

  • 实时更新:每次用户登录时,动态计算当天和前一天的日期,确保日期范围始终是最新的。
  • 错误处理:在 fail 回调中处理可能的异常情况,例如用户取消操作或接口调用失败。
  • 兼容性:确保您的小程序运行环境支持 my.datePicker 接口(适用于 mPaaS 10.1.32 及以上版本)。

5. 总结

通过上述方法,您可以轻松实现微信小程序中日期选择器的日期范围限制功能。核心在于动态计算日期范围并将其传递给 my.datePicker 接口的 startDateendDate 参数。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答标签:
问答地址: