2015-10-20 144 views
0

我有這個時間字符串如何在JavaScript中解析日期時間字符串的日期部分?

Tue, 20 Oct 2015 17:14:47 +0200

我需要從這個返回的日期部分。換句話說,從它得到datemonthyear

目前我所做的:

pub_date = new Date("Tue, 20 Oct 2015 17:14:47 +0200") 
day  = pub_date.getDate() 
month = pub_date.getMonth() 
year  = pub_date.getYear() 

只有day得到正確返回。 monthyear返回錯誤結果。什麼會更正確?

+0

什麼是不正確的結果你看到了嗎? – AtheistP3ace

+1

當有疑問時...閱讀手冊https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date – charlietfl

回答

3

它應該是pub_date.getFullYear()getYear()已被棄用。

http://www.w3schools.com/jsref/jsref_getfullyear.asp

此外,當月返回一個數字從0到11,你應該創建幾個月陣列和訪問的getMonth結果。

var months = ["January", "February", "March", "April", "May", "June", "July", 
       "August", "September", "October", "November", "December"]; 
month = months[pub_date.getMonth()]; 

或者,如果你使用的角度,你可以使用內置的日期過濾

{{ date | format: 'MMMM' }} 

https://docs.angularjs.org/api/ng/filter/date

+0

謝謝,這使得一切都清除了:)我會接受你的回答在10分鐘內 – Xeen

+1

索引是關閉的'月'...你的陣列也是零基於 – charlietfl

+0

剛剛發現。謝謝 –

1

按照docs

日期。 prototype.getMonth()

根據當地時間返回指定日期中的月份(0-11)。

Date.prototype.getFullYear()

按照本地時間返回年份指定日期(4位數字爲4位數的年份)。

所以,你會想:

pub_date = new Date("Tue, 20 Oct 2015 17:14:47 +0200") 
day  = pub_date.getDate() 
month = pub_date.getMonth() + 1 
year  = pub_date.getFullYear() 
1

你期望究竟什麼樣的結果? .getMonth()應返回你09,因爲monthes編號爲0至11

使用.getFullYear(這是正確的),而不是得到年(),應該回報你2015年