不是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、小程序 在前端怎么格式化后台返回的日期数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)