2017-07-28 40 views
-4

我有一個格式如1880-01-01T00:00:00.000的日期數組。什麼是使用JavaScript從這個字符串獲得年份的最佳方式?從字符串格式獲得年份,如1880-01-01T00:00:00.000

+3

的可能的複製[在轉換字符串到日期JS(https://stackoverflow.com/questions/5619202/converting-string-to-date-in-js) –

+3

如果你來堆棧溢出的答案是極其微不足道的和容易發現的答案,你會有一個不好的時間:( – Will

+0

可能重複的[如何解析在這個日期字符串在JavaScript中的年份?](https:// stackoverflow (https:/ /問題/ 4170117 /如何解析今年的字符串在JavaScript中) – Makyen

回答

0

var dateString = "1880-01-01T00:00:00.000"; 
 
var date = new Date(dateString); 
 
var year = date.getFullYear(); 
 
console.log(year);     // 1880 
 

 

 
// Or simply like: 
 
year = new Date("1880-01-01T00:00:00.000").getFullYear(); 
 
console.log(year);     // 1880 
 

 

 
// Interested what methods can you get from the date Object? 
 
// Hit F12 to open developer console and inspect the object 
 
// console.dir(Date.prototype); 
 
// Or directly from the `date` variable: 
 
// console.dir(date.constructor.prototype);

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date

+0

此外,你可以得到不止一年使用[日期對象](https:/ /developer.mozilla.org/en-US/do cs/Web/JavaScript/Reference/Global_Objects/Date)(@ Roko答案中的變量'date') –

0

爲什麼不採用最明顯的解決方案,'1880-01-01T00:00:00.000'.substr(0,4)

+0

可能是因爲使用'Date'可以得到'invalid date',但使用'.substr'可以得到''pigs' ' - 這是一種假陽性。 –

+0

測試'無效日期'需要幾乎與測試子字符串是一個有效的數字相同的努力。 如果他確實知道他的日期有這種格式,則不需要額外的測試。 – Stephan

0

您可以使用String#slice僅用於組合日期和時間字符串ISO 8601的部分副本。

var iso6801 = '1880-01-01T00:00:00.000', 
 
    year = iso6801.slice(0, 4); 
 

 
console.log(year);

相關問題