0

我必须将一个数字 (0-364) 转换为从 2013 年 1 月 1 日开始的日期。例如:00 = 2013 年 1 月 1 日或 45 = 2013 年 2 月 15 日;364= 2013 年 12 月 31 日

4

3 回答 3

4

如果您构造 a new Date,但指定的day值太大,则日值将“溢出”并增加月份。因此,您可以执行以下操作:

days = 1;
date = new Date(2013, 0, days);
// => Tue Jan 01 2013 00:00:00 GMT+1100 (EST)

days = 46;
date = new Date(2013, 0, days);
// => Fri Feb 15 2013 00:00:00 GMT+1100 (EST)

days = 365;
date = new Date(2013, 0, days);
// => Tue Dec 31 2013 00:00:00 GMT+1100 (EST)

请注意,使用此方法时,days从 1 开始表示年初。如果要days == 0生产01 Jan, 2013,则需要使用:new Date(2013, 00, days + 1);

于 2013-07-04T11:30:03.580 回答
1

尝试这样的事情:

// initialize to start of the year
var dt= new Date(2013,00,01); 
// add the required number of days to date
dt.setDate(dt.getDate() + <number of days>); 

<number of days>你的变量在哪里

这里的工作示例

于 2013-07-04T11:29:13.270 回答
0

您可以使用 getTime():

var days = xxx;
var date = new Date(2013, 0, 1);
var res = date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
console.log( new Date(res) );
于 2013-07-04T11:30:57.843 回答