给定一个时间字符串 var time="2017-02-27 16:42:53
" js有三种转换为时间戳的方法:
1、var timestamp = Date.parse(time)
2、var timestamp = time.getTime()
3、var timestamp = time.valueOf()
第一种方法只能精确到秒,后两种能精确到毫秒。
然而相同的代码,在android上能正常执行,在ios上就会出错。
临下班来这么一出,被坑得贼惨,明天开始五一假期,只能晚上加班来解决小程序的这个坑。试过无数种方法后,最后用以下代码解决了问题:
var date=time.substr(0,10)//2017-02-27
var hour=time.substr(11,2)=='00'?0:time.substr(11,2).replace(/\b(0+)/gi,"")
var minute=time.substr(14,2)=='00'?0:time.substr(14,2).replace(/\b(0+)/gi,"")
var second=time.substr(17,2)=='00'?0:time.substr(17,2).replace(/\b(0+)/gi,"")
var timestamp =parseInt(new Date(date).getTime() / 1000)+parseInt(hour)*3600+parseInt(minute)*60+parseInt(second)-28800//别问我为什么-28800,只能告诉你实践出真知
var time=timestampFormat(timestamp)//timestampFormat:自定义的将时间戳转换为刚刚,昨天16:42等表达的方法
于是终于能放个好假了