为了缓解服务器的压力,决定清除一些日期较早的报告文件,经过研讨决定咋微信小程序上限制只能下载30天以内的报告。这时候我们就需要计算当天日期与出报告的日期之间的间隔,如果是超过三十天的就不允许下载报告。
需求是很简单,用日期的getTime进行计算就可以轻易得到相隔日期
// An highlighted block
let today = new Date().toLocaleDateString();//当天时间(格式是xxxx-x-xx)
let report_date = '2022-09-04';//出报告时间
let date= (new Date(today).getTime() - new Date(report_date).getTime()) / 1000 / 60 / 60 / 24//计算出间隔日期
当date小于30的时候才能下载报告,代码在微信开发者工具真机调试与安卓手机测试都没啥问题,但是在ios中date打印出来的是NAN。由于之前吃过这方面的亏,所以第一时间就想是日期格式的问题,于是把代码改成了下面
let year = new Date().getFullYear()
let month = new Date().getMonth()+1
let day = new Date().getDate()
let today = `${year}-${month}-${day}`//打印出来today 为xxxx-xx-xx格式
本以为这样就没有问题了,但是不出意外他还是出意外了,打印出来date还是NAN,于是一查资料发现ios识别的日期格式为xxxx/xx/xx,我真是*****。于是把报告时间和当前时间的日期格式改一下:
let year = new Date().getFullYear()
let month = new Date().getMonth()+1
let day = new Date().getDate()
let today = `${year}/${month}/${day}`//打印出来today 为xxxx-xx-xx格式
let report_date = report_date.replace(/-/g,'/')//把-符号改为/符号
let date= (new Date(today).getTime() - new Date(report_date).getTime()) / 1000 / 60 / 60 / 24
这时候date打印出来的时间就正确了 在ios上也完美运行了。
微信小程序这东西说方便吧是真的方便,说不方便吧那坑是真的多,咱也只能慢慢踩,慢慢进步了。