美文网首页
小程序 IOS时间转换bug

小程序 IOS时间转换bug

作者: 萘小蒽 | 来源:发表于2022-11-22 09:46 被阅读0次

    在项目中需要将时间相互转换,代码如下

        resetDate() {
            let date = new Date(this.searchData.time.toString()bug ‘/’代替‘-’
            console.log(`${date.getFullYear()}年${this.fields === 'month' ? (date.getMonth()) + 1 + '月' : ''}`)
            return `${date.getFullYear()}年${this.fields === 'month' ? (date.getMonth()) + 1 + '月' : ''}`
        }
    

    在开发工具是没问题的 但是实机测试时 出现了问题,所有的转换在ios变成了NaN

    image.png
    按照网上反馈,需要将时间格式中的 ' - ' 变成' / '
        resetDate() {
            let date = new Date(this.searchData.time.toString().replace(/-/g,'/')); //IOS Date对象转换bug ‘/’代替‘-’
            console.log(`${date.getFullYear()}年${this.fields === 'month' ? (date.getMonth()) + 1 + '月' : ''}`)
            return `${date.getFullYear()}年${this.fields === 'month' ? (date.getMonth()) + 1 + '月' : ''}`
        }
    

    但是this.fields === 'month'时 时间的格式为 YYYY-MM 时还是会出现NaN问题
    原因是ios实机中 new Date(YYYY/MM)也会在后续转换出现NaN
    根据自己的需求做了变换,补了一个日期变成了 YYYY/MM/DD

    resetDate() {
            let time = this.searchData.time.toString().replace(/-/g,'/');//IOS Date对象转换bug ‘/’代替‘-’
            let isMonth = this.fields === 'month';
            if(isMonth){
                 time = time +'/01' //iosbug
            }
            let date = new Date(time); 
            return `${date.getFullYear()}年${isMonth ? (date.getMonth()) + 1 + '月' : ''}`
        }
    

    相关文章

      网友评论

          本文标题:小程序 IOS时间转换bug

          本文链接:https://www.haomeiwen.com/subject/piigxdtx.html