問題:
今天做一個(gè)簡單的業(yè)務(wù)邏輯,就是拿到兩個(gè)類似xxxx-xx-xx xx:xx的日期進(jìn)行比較大小寞秃。
第一念頭就是把這日期字符串放到new Date("xxxx-xx-xx xx:xx")然后getTime()一下拿到兩個(gè)時(shí)間戳進(jìn)行比較就完事了宪巨。
然而,然而,然而......
(new Date("xxxx-xx-xx xx:xx")).getTime()這樣在安卓和PC瀏覽器都能正確獲取锣光,唯獨(dú)在ios端沒能正確獲取。
然后在ios端真機(jī)上斷點(diǎn)打印一下(new Date("xxxx-xx-xx xx:xx")).getTime()铝耻,返回了NaNL艿!WTF田篇?替废??泊柬?椎镣??????????
再打印了一下new Date("xxxx-xx-xx xx:xx")兽赁,返回valid Date空對(duì)象状答,WTF?刀崖?惊科?這又是什么鬼?????????
糾結(jié)了許久亮钦,到底什么問題馆截,趕緊度娘走一波??發(fā)現(xiàn)ios端的new Date()是有格式要求的,目前年月日只支持xxxx/xx/xx,是固定有“ / ”分割的蜡娶, 真的是嗶了??了混卵。
解決:
既然規(guī)定是“ / ”分割,那就替換一下“ - ”唄
let str="xxxx-xx-xx xx:xx";str=str.replace(/-/g, "/")
;搞定??
完整:let t=(new Date("xxxx-xx-xx xx:xx".replace(/-/g, "/"))).getTime()
;
多嗶嗶兩句:
Safari和IE沒有測(cè)試過窖张,不知道會(huì)不會(huì)有這樣的問題(什么幕随?兼容IE?再見K藿印)赘淮;
安卓和ios上的微信中的瀏覽器內(nèi)核是不一樣的,這也會(huì)導(dǎo)致上面的安卓和ios中new Date的差別睦霎。
(手打原創(chuàng)梢卸,多多支持,謝謝K橛)