好的,我正在寫一些代碼片段來獲取昨天的ISO日期格式值。奇怪的JavaScript算術行爲(yup ...預計)
代碼:
var dateString = new Date();
var yesterday = dateString.getFullYear();
yesterday += "-"+dateString.getMonth()+1;
yesterday += "-"+dateString.getDate()-1;
上面的代碼輸出2009-111-23。顯然不是將dateString.getMonth()當作一個intiger,並且在它的最後加上1。
將「 - 」+放在dateString.getDate()前面是否將getDate()轉換爲字符串?
這項工作得到了預期的結果。
var dateString = new Date();
var yesterday = dateString.getFullYear() + "-";
yesterday += dateString.getMonth()+1+ "-";
yesterday += dateString.getDate()-1;
//yesterday = 2009-12-22
儘管我並不喜歡它的外觀......不管什麼大不了的。
任何人都可以向我解釋爲什麼JavaScript的行爲是這樣的?有什麼解釋爲什麼發生這種情況?
好的呼叫...我會想出一些東西 - 有效與否。爲什麼它的行爲如此? 你應該發佈這樣的評論中的東西...對嗎? (新的這個網站......不知道這是否是通常的做法) – 2009-12-23 15:05:19