uniapp 使用uview的日历u-calendar微信小程序持续报警
报警提示:
at http://127.0.0.1:32507/appservice/common/vendor.js:15:418895
new Date(“2024-04-30T00:00:00.000Z”) 在部分 iOS 下无法正常使用,iOS 只支持 “yyyy/MM/dd”、“yyyy/MM/dd HH:mm:ss”、“yyyy-MM-dd”、“yyyy-MM-ddTHH:mm:ss”、“yyyy-MM-ddTHH:mm:ss+HH:mm” 的格式
u-calendar 在最新微信小程序中持续报警,版本"uview-ui": “^2.0.36”,原因是因为ios - /时间转换问题
报警如下图:
解决方式:
1、安装 moment.js
npm install moment
2、uview提供的formatter中使用moment的方法对日期进行格式化
moment(date).format("YYYY-MM-DD HH:mm:ss")
修改好后控制台就不会出现这个报警了,
相关完整代码
<template>
<view class="container">
<view>
<view @click="selectRangTime">选择时间区域</view>
<u-calendar ref="calendar" :show="showCalendar" :mode="mode" :formatter="formatter" @confirm="calendarConfirm" @close="calendarClose"></u-calendar>
</view>
</view>
</template>
<script>
import moment from 'moment';
export default {
data() {
return {
mode: 'range',
showCalendar: false,
}
},
onReady() {
// 如果需要兼容微信小程序的话,需要用此写法
this.$refs.calendar.setFormatter(this.formatter)
},
methods: {
formatter(day) {
const d = new Date()
let month = d.getMonth() + 1
const date = d.getDate()
// 对day.date格式化成 "YYYY-MM-DD HH:mm:ss"
day.date = moment(day.date).format("YYYY-MM-DD HH:mm:ss")
if(day.month == month && day.day == date + 3){
day.bottomInfo = '有优惠'
day.dot = true
}
return day
},
calendarConfirm(e) {
console.log(e);
this.calendarClose();
},
selectRangTime() {
this.showCalendar = true;
},
calendarClose() {
this.showCalendar = false;
}
}
}
</script>
<style lang="scss" scoped>
.content {
padding: 10rpx;
}
</style>
此为个人工作过程中的记录,如对您有所帮助不胜荣幸。