我必须将一个数字(0-364)转换为日期开始 从2013年1月1日起。示例:00 = 2013年1月1日或45 = 15 2013年2月; 364 = 2013年12月31日
答案 0 :(得分:4)
如果您构造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);
答案 1 :(得分: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>
是您的变量
答案 2 :(得分: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) );