回答
可以簡單地分析字符串:
var year = parseInt(dateString);
解析將結束在破折號,作爲可以不是整數的一部分(除了作爲第一個字符)。
您可以簡單地使用 -
var dateString = "2010-02-02T08:00:00Z";
var year = dateString.substr(0,4);
如果年份始終保持在年線的位置前面。
請注意,'String.prototype.slice'通常比'substr'更受歡迎,因爲它在實現中有幾個錯誤,例如JScript(IE <= 8),它不能處理負向索引。兩者都是ECMAScript標準的一部分,但'substr'是* non-normative *,意味着符合標準的實現並不是嚴格要求實現'substr'。 – CMS 2010-11-13 00:19:42
@CMS:哇,我不知道,我已經想知道爲什麼你喜歡'slice'而不是'substr';每天... – 2010-11-13 00:58:12
var year = '2010-02-02T08:00:00Z'.substr(0,4)
...
var year = new Date('2010-02-02T08:00:00Z').getFullYear()
這是一個日期,使用JavaScript的內置Date功能...
var d = new Date('2011-02-02T08:00:00Z');
alert(d.getFullYear());
看到我的[評論@ Rob](http://stackoverflow.com/questions/4170117/how-to-parse-the-year-from-this-date-string-in-javascript#comment-4503426 )...提示:[試試](http://jsbin.com/aruge4/edit)在IE8或更低版本中,甚至在舊的Firefox版本中,它根本無法工作... – CMS 2010-11-13 00:31:36
啊謝謝!我沒有意識到這一點。這就是說,在處理日期時,我發現使用日期函數而不是使用split/substr總是個好主意。這是一個例外,謝謝你的提升。 – 2010-11-15 15:29:20
我認爲正確的方法是
var year = (new Date('2010-02-02T08:00:00Z')).getFullYear();
或
var date = new Date('2010-02-02T08:00:00Z');
var year = date.getFullYear();
因爲它允許您稍後進行其他日期操作,如果您需要並且如果日期格式發生變化也將繼續工作。
更新:傑森本森指出,日期將解析它給你。所以我刪除了無關的Date.parse調用。
對於這種情況,「適當」的方式恕我直言,這只是一個矯枉過正的問題,因爲由ECMAScript 3中的Date構造函數和Date.parse方法處理的格式是**實現相關**,ISO-8601格式最近由ECMAScript 5引入,這意味着你會發現不能解析該格式的實現。他只是想要前四個charaacters,我只需要去'dateStr.slice(0,4)'...... – CMS 2010-11-13 00:23:16
@CMS,至少人們應該知道有一種正式的方式,即使事實證明它在IE或任何地方無法使用。使用slice(或substr或split)解析日期與使用正則表達式來解析xml一樣糟糕,即使您沒有可用的像樣的xml解析器。 – 2010-11-13 00:40:09
我不同意:沒有「官方」的方式來獲得這種格式的字符串的年份,一個子字符串就足夠了。 「日期」對象可能比較方便的唯一情況是您住在GMT以外的其他時區,因爲當年的數字在除夕之後的世界各地有所不同。 – 2010-11-13 00:56:25
- 1. 如何分析與2位數年份字符串的日期?
- 2. 解析日期字符串以獲得年份
- 3. 如何在JavaScript中將字符串解析爲日期對象?
- 4. 解析日期字符串(MM-DD)到Java日期默認年
- 5. 如何在django中解析來自url的javascript字符串
- 6. 如何在JavaScript中解析日期時間字符串的日期部分?
- 7. 如何解析JavaScript中的特定日期字符串?
- 8. 如何解析日期字符串?
- 9. 如何解析日期字符串
- 10. 如何解析日期字符串
- 11. 如何從字符串解析日期?
- 12. 日期解析字符串
- 13. 解析字符串日期
- 14. 解析日期字符串
- 15. 解析字符串,日期
- 16. 解析日期字符串
- 17. 解析日期字符串
- 18. 在Perl中解析日期字符串
- 19. 如何解析此字符串作爲日期時間
- 20. 快速解析長日期爲月 - 日 - 年字符串
- 21. 解析字符串爲日期時間格式「日,月dat,年」
- 22. 無法將字符串解析爲來自Json的日期,UnparsableDateException
- 23. Java解析來自字符串的日期
- 24. Ruby中的解析日期字符串
- 25. D3:無法解析日期與年份
- 26. 如何使用SimpleDateFormat解析日期只有月份和年份
- 27. 解析日期字符串(字符串轉換爲日期)
- 28. 如何只獲取日期字符串的年份部分?
- 29. 解析任何字符串SQL日期
- 30. 解析字符串日期在python
+1,最簡單最好,使用Date對象只是一個矯枉過正的問題,應該避免使用,因爲ISO-8601格式沒有得到廣泛的支持-yet-,'parseInt'沒有問題。我可能也會使用'dateString.slice(0,4);' – CMS 2010-11-13 00:37:21
這是糟糕的抽象和臨時的。 – episodeyang 2018-01-20 23:26:43