鍍金池/ 問答/PHP  HTML/ 為什么后臺(tái)返回的日期我輸出處理了在蘋果手機(jī)里顯示NAN?

為什么后臺(tái)返回的日期我輸出處理了在蘋果手機(jī)里顯示NAN?

后臺(tái)返回的是日期字符串。例如:"2017-12-19 10:25:03" 這樣的日期。

然后我要處理這個(gè)日期并且顯示在蘋果手機(jī)里可以正常顯示。

我是這樣處理的。

let dates = "2017-12-19 10:25:03";
let newDates = dates.replace(/\-/g?,"/");//將"-"轉(zhuǎn)成"/"
let data = new Date(newDates).toLocaleDateString(); //獲取前面的日期,不要時(shí)分秒
let nowData = new Date().toLocaleDateString(); //獲取當(dāng)前日期
let yest = Date.parse(nowData)- 24 * 60 * 60 * 1000;//一天前的日期時(shí)間戳
if(Date.parse(data) == Date.parse(nowData)){ //如果日期的時(shí)間戳相同則是今天
    //輸出今天
}
if(Date.parse(data) == yest){
    //輸出昨天
}
//其他情況輸出相應(yīng)的日期data

重點(diǎn)是,結(jié)果蘋果手機(jī)上還是為NaN
求解(大扎好,我系轱天樂,我四渣渣輝,探挽懶月,介四里沒有挽過的船新版本,擠需體驗(yàn)三番鐘,里造會(huì)干我一樣,愛象節(jié)款游戲。)

回答
編輯回答
疚幼

你確定你這段代碼是復(fù)制過來的?有報(bào)錯(cuò)啊,不知道你怎么運(yùn)行成功的。正則那句有錯(cuò)

2018年2月3日 01:26
編輯回答
情殺

你轉(zhuǎn)換后的data="19/12/2017",Date.parse(data)就已經(jīng)為NaN了,parse不支持這種格式,日期用2017-12-19這個(gè)格式就行了。

2017年5月21日 00:59
編輯回答
孤巷

可以用moment模塊來對(duì)日期格式化,我之前也遇到了這個(gè)問題,用moment的format解決了。

2018年4月15日 07:09
編輯回答
別傷我

每太看懂你想要的什么 但是我我在Safari運(yùn)行的都能出效果了 應(yīng)該不是兼容問題問題 你看看是不是你邏輯判斷的出問題了 if哪里判斷不出來

2017年1月21日 22:25
編輯回答
避風(fēng)港

蘋果幾?
如果是ios10以下用let,你怕是石樂志。

2017年11月15日 07:18
編輯回答
久舊酒

這個(gè)是因?yàn)椋掌诟袷綖樽址脑?。我也遇到過,找相應(yīng)方法把日期處理下

2017年8月3日 18:42
編輯回答
傻丟丟

首先,你的規(guī)則式處理字符串那段是多余的,jsDate對(duì)象在構(gòu)建時(shí)能夠支持這種格式的日期字符串
另外Date.parse也支持"YYYY-MM-DD"這樣的日期字符串

你要判斷是否今天不需要導(dǎo)入字符串處理即可。

let dates = "2017-12-19 10:25:03";
let Cdate = new Date( dates  ).toLocaleDateString(); //獲取前面的日期,不要時(shí)分秒 ,服務(wù)器時(shí)間的日期信息字符串
let nowData = new Date().toLocaleDateString(); //獲取當(dāng)前時(shí)間的日期信息字符串
let yest = new Date(new Date() - 24 * 60 * 60 * 1000).toLocaleDateString();//一天前的日期字符串

if(Cdate == nowDate){ //如果日期的時(shí)間戳相同則是今天
    //輸出今天
}
if(Cdate == yest){
    //輸出昨天
}
//其他情況輸出相應(yīng)的日期data
2017年12月3日 18:24