2017-07-17 01:02:18 koromon 阅读数 745
  • Java大数据培训学校全套教程-常用对象(21)

    Java大数据培训学校视频课程:"java大数据培训学校全套教材"系列课程由750集视频构成,基本就 是1)时下流行的java培训学校主流内部教材,2)和市面上培训学校的通 行的课程体系几乎一样。所以这套课程都能自己学下来,等于上了培训学 校一次,完全可以找个java工程师的工作了。 本门课程为"java大数据培训学校全套教材"系列课程的第二十一篇,通过学习Array对象,等相关概念让大家对常用对象编程打下好的基础。

    4651 人正在学习 去看看 马克

问题

项目中某个地方用到了倒计时,因此打算通过 new Date() 函数实现。但在 iPhone 真机测试的时候,显示的结果不符合预期。通过调试发现 iOS 中 new Date('2017-01-01') 返回的结果是 NaN,通过搜索发现 iOS new Date() 中不能包含 - 符号。

解决

使用 String.replace() 进行字符替换即可。

'2017-01-01'.replace(/-/g,'/') => '2017/01/01'

收获

真机毕竟和浏览器模拟还是不一样的,开发完一定要在不同系统平台测试一遍才行。另外发现不符合预期结果的时候,要懂得如何快速定位找出问题。

2017-12-27 11:53:11 u010564430 阅读数 337
  • Java大数据培训学校全套教程-常用对象(21)

    Java大数据培训学校视频课程:"java大数据培训学校全套教材"系列课程由750集视频构成,基本就 是1)时下流行的java培训学校主流内部教材,2)和市面上培训学校的通 行的课程体系几乎一样。所以这套课程都能自己学下来,等于上了培训学 校一次,完全可以找个java工程师的工作了。 本门课程为"java大数据培训学校全套教材"系列课程的第二十一篇,通过学习Array对象,等相关概念让大家对常用对象编程打下好的基础。

    4651 人正在学习 去看看 马克
var startTime = new Date('2017-12-08 00:00:00');   //ios中starTime为NaN

Android 和 PC端浏览器都没有问题,IOS 浏览器会报NaN,解决方法就是,把中间的空格替换为T

startTime.replace(' ','T');

var startTime2 = new Date('2017-12-08T00:00:00');  


2017-04-26 13:59:44 Cookysurongbin 阅读数 8554
  • Java大数据培训学校全套教程-常用对象(21)

    Java大数据培训学校视频课程:"java大数据培训学校全套教材"系列课程由750集视频构成,基本就 是1)时下流行的java培训学校主流内部教材,2)和市面上培训学校的通 行的课程体系几乎一样。所以这套课程都能自己学下来,等于上了培训学 校一次,完全可以找个java工程师的工作了。 本门课程为"java大数据培训学校全套教材"系列课程的第二十一篇,通过学习Array对象,等相关概念让大家对常用对象编程打下好的基础。

    4651 人正在学习 去看看 马克

ios使用如下方法获得NaN,安卓手机则是正常计算,解决方法是换个这个时间的格式

new Date("2017-04-28 23:59:59").getTime()

换成如下方式就正常了,就是‘-’换成‘/’

new Date("2017/04/28 23:59:59").getTime()
2019-12-02 22:57:35 sinat_35538827 阅读数 8
  • Java大数据培训学校全套教程-常用对象(21)

    Java大数据培训学校视频课程:"java大数据培训学校全套教材"系列课程由750集视频构成,基本就 是1)时下流行的java培训学校主流内部教材,2)和市面上培训学校的通 行的课程体系几乎一样。所以这套课程都能自己学下来,等于上了培训学 校一次,完全可以找个java工程师的工作了。 本门课程为"java大数据培训学校全套教材"系列课程的第二十一篇,通过学习Array对象,等相关概念让大家对常用对象编程打下好的基础。

    4651 人正在学习 去看看 马克

前言

new Date() 在 ios 中存在兼容问题。在 ios 中使用 new Date(‘2019-12-02 10:00:00’) 会出现 Invalid Date 的报错,所以使用 new Date(‘2019-12-02 10:00:00’).getTime() 会出现 NaN。


因为 ios 不支持这种时间格式。解决方式如下:
// 将时间格式转化为 '2019/12/02 10:00:00'
new Date('2019-12-02 10:00:00'.replace(/-/g,'/')).getTime()
2018-08-20 16:05:09 bhq1711617151 阅读数 954
  • Java大数据培训学校全套教程-常用对象(21)

    Java大数据培训学校视频课程:"java大数据培训学校全套教材"系列课程由750集视频构成,基本就 是1)时下流行的java培训学校主流内部教材,2)和市面上培训学校的通 行的课程体系几乎一样。所以这套课程都能自己学下来,等于上了培训学 校一次,完全可以找个java工程师的工作了。 本门课程为"java大数据培训学校全套教材"系列课程的第二十一篇,通过学习Array对象,等相关概念让大家对常用对象编程打下好的基础。

    4651 人正在学习 去看看 马克

这个问题我一定要记录一下,悼念一下我为了解决这个bug花费了两天时间,也为其他小伙伴可以顺利避免这个bug而写.
在我拿到后台的数据之后,根据需求,我需要给对象添加一下自定义的属性.按照vue文档使用this.$set()方法添加,在pc上一点问题都没有,这个字段可以展示出来,但在手机端这个字段就展示不出来了,初步怀疑是这个字段在手机上没有添加进去.但是vue挂网这个添加属性的方法应该是没有错的,由于自己使用的是mint-ui这个框架,于是就各种开始百度mint-ui添加字段加不进去的问题,但是依旧没有找到解决方法.
经过重新一番思考,按照代码顺序一步一个alert(),(由于手机无法看到日志,所以只能使用alert),因为我的代码里面有关于时间转换时间戳的问题,所以在执行到转换时间戳这一步手机上弹出了NAN这个问题,但是pc上却没有.考虑到问题可能就出现在这,于是经过一番百度,发现new Date('2017-09-18 14:58:32').getTime(); //在ios上死活拿不到时间戳显示NaN ,ios手机不能正确转换这个格式,但是安卓手机可以.
于是又加了一个转换,把所有的”-“替换成”/”,在ios就可以转换了.即转换成这种方式new Date("2017/04/28 23:59:59").getTime(),那么在安卓和ios就都没有问题了.
下面附上我的代码,仅供参考

let ttime=item.matchDate+" "+item.time;
let time0 = ttime.replace(/-/g,"/");
let time1=new Date(time0).getTime();
let curTime=new Date().getTime();
if(time1<curTime){
    this.$set(item,"status",'已完成');
    }else if(time1==curTime){
        this.$set(item,"status",'进行中');
        this.$set(item,"timing",'进行中');
    }if(time1>curTime){
        this.$set(item,"status",'未开始');
        this.$set(item,"vs",'VS');
    }

这个问题真是坑死我了,不过也知道了解决bug要从代码入手,要一步一步分析自己的代码,确定自己的代码没有问题(因为一般官方文档是不会有问题的)

没有更多推荐了,返回首页