小程序表单中日期选择器可以限制日期吗

小程序表单中日期选择器可以限制日期吗,第1张

不是start、end属性,而是min、max属性。如下:

<input type="date" id="time"/>

<script type="text/javascript">

//今天的时间

var day = new Date();

daysetTime(daygetTime());

var time = daygetFullYear()+"-" + ('0'+ (daygetMonth() + 1))slice(-2) + "-" + ('0' + daygetDate())slice(-2);

//昨天的时间

var day1 = new Date();

day1setTime(day1getTime() -24 60 60 1000);

var min = day1getFullYear()+"-" + ('0'+ (day1getMonth() + 1))slice(-2) + "-" + ('0' + day1getDate())slice(-2);

//明天的时间

var day2 = new Date();

day2setTime(day2getTime() + 24 60 60 1000);

var max = day2getFullYear()+"-" + ('0'+ (day2getMonth() + 1))slice(-2) + "-" + ('0' + day2getDate())slice(-2);

//默认时间为今天

documentgetElementById('time')value = time;

//限制不能选择昨天之前的日期(加上属性min)

documentgetElementById('time')setAttribute('min', min);

//限制不能选择明天之后的日期(加上属性max)

documentgetElementById('time')setAttribute('max', max);

</script>

问题出现:

在做微信小程序时,在开发环境下,日期格式2021-09-22 14:29显示正确,并在真机10连接测试也显示正确

但是断开连接,直接在微信小程序运行,发现日期无法正常显示

发现根本问题:

后面切换为真机调试20调试,发现时间new Date('2021-09-22 14:29')以后,返回NAN (空对象)

解决问题:将时间的—换成/

let date = '2021-09-22 14:29';

date = datereplace(/-/g, "/");

date = new Date(date);

DateprototypeFormat=function(formatStr){return formatStrreplace(/yyyy|YYYY/,thisgetFullYear())replace(/yy|YY/,(thisgetYear() % 100)>9(thisgetYear() % 100)toString():'0' + (thisgetYear() % 100))replace(/MM/,(thisgetMonth()+1)>9(thisgetMonth()+1)toString():'0' + (thisgetMonth()+1))replace(/M/g,(thisgetMonth()+1))replace(/dd|DD/,thisgetDate()>9thisgetDate()toString():'0' + thisgetDate())replace(/d|D/g,thisgetDate())replace(/hh|HH/,thisgetHours()>9thisgetHours()toString():'0' + thisgetHours())replace(/h|H/g,thisgetHours())replace(/mm/,thisgetMinutes()>9thisgetMinutes()toString():'0' + thisgetMinutes())replace(/m/g,thisgetMinutes())replace(/ss|SS/,thisgetSeconds()>9thisgetSeconds()toString():'0' + thisgetSeconds())replace(/s|S/g,thisgetSeconds())replace(/w|W/g,['日','一','二','三','四','五','六'][thisgetDay()]);};

var timer=Dateparse("12/30/2017 12:00:00");

alert( new Date(timer)Format("YYYY年MM月DD")   ) //2017年12月30

alert( new Date(timer)Format("YYYY年MM月DD日 HH时mm分SS秒 星期W")  ) //2017年12月30日 12时00分00秒 星期六

最近开发支付宝小程序,记录一下遇到的坑

1 sjs只支持从sjs文件中导入模块,不能从其他js中引入。这个限制,只能在sjs里写一些小功能。

2 sjs不支持正则!sjs支持es6语法,这比微信小程序的wxs要进步一些。在 SJS 自定义脚本中不支持直接 new RegExp() 构造 regexp 对象,生成 regexp 对象需要使用 getRegExp 函数。例如:

3 下拉刷新开启,需要在appjson的window项 和页面的pagejson 同事这种:pullRefresh:true

4 sjs中不能使用new 语法, new Date() 可以用 Date 替代

5 ref 有bug。 页面中多个子组件ref, 设置和提取不成功。

6 不能通过 import的方式导入本地等静态资源,只能通过写相对路径字符串的方式去调整的引用。

总结一下:

搞了一天的支付宝小程序。这些小程序做的呀,真的不知道该怎么说。为了安全,做一些限制可以理解。但是各家都自己搞一套非标准的东西,让我们这些开发人员真难受。这里面最典型的就是wxs/sjs。这种东西,就不应该出现。这东西太坑了。

目前总结解决方法:同时需要设置模块的函数,函数都可放置在utiljs中去。

首先:

一、在utiljs中放入如下两组函数

1 设置点击后多久不能再次 *** 作该

function throttle(fn, gapTime) {

  if (gapTime == null || gapTime == undefined) {

    gapTime = 1500

  }

  let _lastTime = null

  // 返回新的函数

  return function () {

    let _nowTime = + new Date()

    if (_nowTime - _lastTime > gapTime || !_lastTime) {

      fnapply(this, arguments)  //将this和参数传给原函数

      _lastTime = _nowTime

    }

  }

}

2 设置加载动画

function showLoading(message) {

  if (wxshowLoading) {    // 基础库 110 微信656版本开始支持,低版本需做兼容处理

    wxshowLoading({

      title: message, mask: true

    });

  } else {    // 低版本采用Toast兼容处理并将时间设为20秒以免自动消失

    wxshowToast({

      title: message, icon: 'loading', mask: true, duration: 20000

    });

  }

}

function hideLoading() {

  if (wxhideLoading) {    // 基础库 110 微信656版本开始支持,低版本需做兼容处理

    wxhideLoading();

  } else {

    wxhideToast();

  }

}

并且将其导出作为页面使用:

moduleexports = {

  throttle: throttle,

  showLoading: showLoading,

  hideLoading: hideLoading,

}

二、将函数引入页面使用

const util = require('//utils/utiljs');

即可。

以上就是关于小程序表单中日期选择器可以限制日期吗全部的内容,包括:小程序表单中日期选择器可以限制日期吗、uniapp 时间格式化 iOS真机显示为NAN、小程序 在前端怎么格式化后台返回的日期数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9761047.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存