小程序 IOS时间转换bug和picker组件起始时间1年1月的问题

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

    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 + '月' : ''}`
    }

picker组件起始时间1年1月的问题

value值我们需要在变化的时候转为字符串就OK了

<picker mode="date" header-text="选择时间" fields="{{fields}}" value="{{time}}"
        bindchange="bindDateChange">
      <view class="mybill-cell-lable triangle-down">{{ searchData.time }}</view>
</picker>

这里是value + ""

bindDateChange(e) {
      let value = e.detail.value;
      this.searchData.time = value;
      this.time = this.fields === 'month' ? value+"" : value + "/01/01";
        },
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容