2011-07-25 135 views
1
var str ="20110725"; 
var dd = str.substring(6); 
var mm = str.substring(4,2); 
var yyyy = str.substring(0,3); 
alert(dd);//25 
alert(mm);//11 
alert(yyyy);//2011 

除了上述輸出,我預計「25」爲日期,「07」爲月份,「2011」爲年份。請糾正我。爲什麼子串方法以這種方式表現?

+0

所以,現在你有一個新問題 - 你應該接受一個答案,並創建一個新的月曆[業務]的stackoverflow問題。我知道答案 - 但我不想渾濁這些水域。謝謝。 – jimbojw

回答

3

我想你想要substr()而不是substring()。他們不同。

+0

沒有太大的區別。除了閱讀起來會有點困難。 –

+0

@約瑟夫:他們遠不一樣;看到這裏:http://stackoverflow.com/questions/3745515/what-is-the-difference-between-substr-and-substring – Reid

+0

我知道他們是不同的......我沒有否認......但他們是類似的:substr(startPosition,endPosition)substring(startPosition,length)。我每天都使用這些。在這種情況下,substr很難閱讀,因爲不是(4,2)的月份(兩個字符的長度),它將是(4,6)(位置4和6)。這很難閱讀imo和非直觀。 –

2

你應該有

var mm = str.substring(4, 6); 
2

相反的:

var mm = str.substring(4, 2) 

務必:

var mm = str.substring(4, 6) 
+0

第二個參數是「最多但不包括」值,所以它應該是「6」,而不是「5」。 –

+0

糟糕,這是我的錯誤。感謝您的高舉。 –

1

試試這個。你的年份也需要4,而不是3。

var str ="20110725"; 
var dd = str.substr(6); 
var mm = str.substr(4,2); 
var yyyy = str.substr(0,4); 
alert(dd);//25 
alert(mm);//11 
alert(yyyy);//2011 
相關問題