給定一個時間字符串 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等表達的方法
於是終於能放個好假了