// 检验手机号格式 const checkPhone = (phone) => { if (!phone || !/^1[3-9]\d{9}$/.test(phone)) { return false } return true; } // 转换时间戳为yyyy-mm-dd // params: 时间戳 // return yyyy-mmm-dd const formatTime = (time) => { if (!time) { return '时间格式错误,需要传入时间戳' } const date = new Date(time) 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}` } // 计算yyyy-mm-dd与当前时间的差值 // params: yyyy-mm-dd格式的字符串 // return: 差值(天) const calculateDateDifference = (dateString) => { if (!dateString) { return '时间格式错误,需要传入yyyy-mm-dd格式的字符串' } // 传入值为yyyy-mm-dd格式的字符串 const inputDate = new Date(dateString) // 化为时间戳 // const inputTime = inputDate.getTime() const currentDate = new Date() const timeDifference = inputDate - currentDate if (!(currentDate.setHours(0, 0, 0, 0) - inputDate.setHours(0, 0, 0, 0))) { return 0 } // 如果为负 返回-1 if (timeDifference < 0) { return -1 } // 计算天数 const dayDifference = Math.ceil(timeDifference / (1000 * 60 * 60 * 24)) return dayDifference } // 微信支付方法 // 传参1: 支付数据 // 传参2: 成功回调 // 传参3: 失败回调 // 传三个参数 支付数据 成功回调 失败回调 const wxPay = (paymentData, successCallback, failCallback) => { uni.requestPayment({ provider: 'wxpay', timeStamp: paymentData.timeStamp, nonceStr: paymentData.nonceStr, package: paymentData.packageValue, signType: paymentData.signType, paySign: paymentData.paySign, success: (res) => { if (successCallback) { successCallback(res) } console.log('支付成功:', res) uni.showToast({ title: '支付成功', icon: 'success' }) if (successCallback) { successCallback(res) } }, fail: (err) => { console.log('支付失败:', err) if (failCallback) { failCallback(err) } if (err.errMsg === 'requestPayment:fail cancel') { uni.showToast({ title: '支付已取消', icon: 'none' }) } else { uni.showToast({ title: '支付失败', icon: 'none' }) } } }) } export { checkPhone, formatTime, calculateDateDifference, wxPay }