Javascript中的随机日期生成

时间:2015-03-30 14:10:18

标签: javascript mirth

我正在尝试以格式yyyymmdd生成随机日期,这是一个使用Javascript并且有限支持Java(Apache公共)的工具。

我面临的问题是它产生的日期超出了范围。

我的代码生成了一些随机输出

20131837
20140448
20150100

这是我正在使用的代码

var visit_from=new Date(2012,0,1).getTime();
var visit_to=new Date(2015,0,1).getTime();
var visit_date=DateUtil.formatDate("yyyyddmm",new Date(visit_from + Math.random()*(visit_to-visit_from)));

我所拥有的一个低级别想法是定义一个月份为1-12且一天为1-31的数组,并让Math.random()处理该数组。但这对2月份不起作用。如果我找不到其他方法,我打算使用这种方法。

我发现了一些问题,例如thisthis,但它们似乎是在C#上。

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

function randomDate(){
   var startDate = new Date(2012,0,1).getTime();
   var endDate =  new Date(2015,0,1).getTime();
   var spaces = (endDate - startDate);
   var timestamp = Math.round(Math.random() * spaces);
   timestamp += startDate;
   return new Date(timestamp);
}
function formatDate(date){
    var month = randomDate().getMonth();
    var day = randomDate().getDate();

    month = month < 10 ? '0' + month : month;
    day = day < 10 ? '0' + day : day;

    return String(date.getFullYear()) + month + day;
}
console.log( randomDate() );
console.log( randomDate() );
console.log( randomDate() );
console.log( randomDate() );
//UPDATE: added with date format
console.log( formatDate(randomDate()) );