2015-06-22 336 views
0

我想將365天添加到格式化的JavaScript日期。格式javascript日期並添加365天

var today = new Date(); 
var day = today.getDate(); 
var month = today.getMonth(); 
var year = today.getFullYear(); 
today = year +"-"+ day +"-"+ month; 
var duedate = new Date(today); 
duedate.setDate(today.getDate() + 365); 

控制檯說最後一行中的today.getDate()不是函數。如何正確添加365天到格式化的日期?謝謝!

+0

'today'是一個字符串,所以錯誤是正確的,沒有方法'String.prototype.getDate'(見行:'today = year +「 - 」+ day +「 - 」+ month;') 。 –

+0

不要使用Date構造函數來解析字符串,即使它在某些瀏覽器中某些時候「有效」,它也是不可靠的。您提供的格式(y-d-m)很可能會被解釋爲y-m-d或無效。要複製日期,請使用:var dateCopy = new Date(+ date);'where * date *是日期對象。 – RobG

+0

輸入字符串是什麼格式?解析日期字符串非常簡單,所以格式化它們,但需要顯示格式。 – RobG

回答

0

所有你需要做的是去除

today = year +"-"+ day +"-"+ month; 

此行的日期對象轉換爲字符串。

+0

我需要這種格式的日期。我想出了該怎麼做。謝謝。 – propernoun

2

使用Date對象可以做到這一點。

var now = new Date(); 
var duedate = new Date(now); 
duedate.setDate(now.getDate() + 365); 

是否需要編輯格式化日期?在這種情況下,您需要使用字符串/子字符串進行操作。不是很漂亮的做法。

+0

是的,這是必要的。我在jsfiddle中做了這個。它似乎工作。 http://jsfiddle.net/2jmLfe0s/ – propernoun

+0

@ propernoun-「似乎工作」非常含糊,如果你看看正在生成的值,它不會做你的想法。 – RobG

+0

我不明白它不是。它會在日期中添加一年,然後比較兩個日期。 – propernoun