2015-06-22 331 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