Javascript 中的随机日期生成
Random Date Generation in Javascript
我正在尝试以 yyyymmdd 格式在 Mirth 中生成随机日期,该工具使用 Java 脚本并有限支持 Java(Apache commons)。
我面临的问题是它生成的日期超出范围。
我的代码生成了一些随机输出
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 月行不通。如果找不到其他方法,我打算使用此方法。
我发现了几个类似 this and this 的问题,但它们似乎在 C# 上。
有什么建议吗?
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()) );
我正在尝试以 yyyymmdd 格式在 Mirth 中生成随机日期,该工具使用 Java 脚本并有限支持 Java(Apache commons)。
我面临的问题是它生成的日期超出范围。
我的代码生成了一些随机输出
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 月行不通。如果找不到其他方法,我打算使用此方法。
我发现了几个类似 this and this 的问题,但它们似乎在 C# 上。
有什么建议吗?
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()) );