【发布时间】:2014-11-15 17:32:07
【问题描述】:
我想根据格式“HH:MM AM”制作随机时间的javascript 在我的 selenium IDE 中。
我尝试了以下代码: javascript{Math.floor(24*Math.random() + 00) +":" + "00 PM";}
但正如你猜想的那样,它不起作用。 请您帮忙谢谢。
【问题讨论】:
标签: javascript selenium random ide
我想根据格式“HH:MM AM”制作随机时间的javascript 在我的 selenium IDE 中。
我尝试了以下代码: javascript{Math.floor(24*Math.random() + 00) +":" + "00 PM";}
但正如你猜想的那样,它不起作用。 请您帮忙谢谢。
【问题讨论】:
标签: javascript selenium random ide
Shehryar 的答案会给您提供不完全随机的结果,主要是因为它应该乘以 12 而不是当前的小时数,而不是当前的分钟数 60。即,较高的小时数和分钟数将不那么频繁。此外,由于使用圆形而不是地板,因此可以获得零小时 60 分钟。
虽然 HTML 和 document 对象的使用很好,所以我将复制它:
<div id="timebox"></div>
<script>
function pad(number) {
//Add a leading 0 if the number is less than 10
return ((number<10)?"0":"")+number.toString();
}
function randomTime() {
//Generate random minute in the day (1440 minutes in 24h)
var r = Math.floor(Math.random() * 1440);
//The hour is obtained by dividing by the number of minutes in an hour
//taking the floor of that (drop the decimal fraction)
//take the remainder (modulo) of dividing by 12 (13 -> 1 etc)
//add 1 so that the range is 1-12 rather than 0-11
var HH = pad(1 + (Math.floor(r/60) % 12));
//Take the integer remainder of dividing by 60 (remove the hours)
var MM = pad(r % 60);
//The afternoon starts after 12*60 minutes
var AMPM = (r>=720) ? "PM" : "AM";
return HH + ":" + MM + " " + AMPM;
}
document.getElementById("timebox").innerHTML=randomTime();
</script>
【讨论】:
您是否已经查看过这篇文章: How to format a JavaScript date 这在 Date 对象本身上: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date 也许这些链接将为您提供一些指导,帮助您提出解决方案。祝你好运!
编辑:我已尝试使用此 jsFiddle 来帮助您,请参阅:http://jsfiddle.net/damf9hf1/3/
HTML:
<div id="timebox"></div>
JS:
var myDate = new Date();
var myHour = myDate.getUTCHours();
var myMinutes = myDate.getMinutes();
myRandom(myHour, myMinutes);
function myRandom(hrs, mins) {
hrs = Math.round(Math.random()*hrs);
mins = Math.round(Math.random()*mins);
var hFormat = (hrs<10 ? "0" : "");
var mFormat = (mins<10 ? "0" : "");
var amPm = (hrs<12 ? "AM" : "PM");
document.getElementById("timebox").innerHTML="Time: " +hFormat+hrs+ ":" +mFormat+mins+ " " +amPm;
}
}
【讨论】: