帮助我摆脱KENOBI,你是我唯一的希望。
所以上周我问过这个问题:
我需要制作一个倒数到下午4:30的计时器。到目前为止,我可以将它发送到下午4点或下午5点,但不会介于两者之间。我已经设法解决了这个问题:
<script type="text/javascript">
var currentTime = new Date();
var hours = currentTime.getHours();
var minutes = currentTime.getMinutes();
var d = new Date();
var weekday = new Array(7);
weekday[0] = "Sunday";
weekday[1] = "Monday";
weekday[2] = "Tuesday";
weekday[3] = "Wednesday";
weekday[4] = "Thursday";
weekday[5] = "Friday";
weekday[6] = "Saturday";
var n = weekday[d.getDay()];
var suffix = "AM";
var hoursLeft = 16 - hours;
var minsLeft = 60 - minutes;
if (minutes < 10){
minutes = "0" + minutes;
}
if (hours >= 18)
{
document.write("Same day shipping has ended for today.");
} else
if ((n === "Saturday") || (n === "Sunday"))
{
document.write("Same day shipping is not available today.");
} else {
if (hoursLeft === 0) {
document.write(minsLeft + " minutes left to have your order shipped today!");
} else {
if (hoursLeft === 1) {
document.write(hoursLeft + " hour and " + minsLeft + " minutes left to have your order shipped today!");
} else {
if ((hoursLeft === 0) && (minsLeft <= 30)){
document.write(minsLeft + " minute left to have your order shipped today!");
} else {
if (minsLeft ===1) {
document.write (hoursLeft + " hours and " + minsLeft + " minute left to have your order shipped today!");
} else {
if(minsLeft===60){
minsLeft=0;
hoursLeft++;
n === "Monday";
n === "Tuesday";
n === "Wednesday";
n === "Thursday";
n === "Friday";
}
document.write(hoursLeft + " hours and " + minsLeft + " minutes left to have your order shipped today!");
}
}
}
}
}
</script>
我需要时间倒计时到下午4:30,但我只知道如何更改“var hoursLeft”将其设置为“16小时”,这让我到下午4点,但无法计算如何到达下午4:30。我以为我会调整“var minsLeft”,但得到了一个奇怪的错误,开始说“2小时和-15分钟左右”。
有人有什么想法吗?
幸运的是,辉煌的UtopiaLtd回应了这个:
作为上述建议的评论者,请在几分钟内完成计算。将您的小时数转换为总分钟数,并确保分钟数在您的参数范围内。
要显示分钟数,只需使用模数运算符即可获得当前小时数的分钟数。
例如,如果还剩185分钟并且您想要显示“剩余3小时5分钟”,
var minutesLeft = 185;
var hours = Math.floor(minutesLeft/60);
var minStr = minutesLeft % 60;
var timeLeft = hours + " hours and " + minStr + " minutes left";
当然,你会想要使用自己的逻辑来避免说“1小时”之类的事情。
但是这里是踢球者,我不知道我在做什么,我们的技术人员在他开始之前离开了他的替补戒烟。作为办公室里最讨厌的人,这已经落到了我的膝盖上,但我之前没有使用过javascript。
如何将UtopiaLtd的解决方案插入原始脚本?讨厌成为一种负担,但我离开了我的元素。我觉得我用我的无能为力污染了网站,但需要帮助,你们是我唯一能想到的。
提前致谢!
答案 0 :(得分:0)
好的,所以......前言这个,这不是一个非常优雅的解决方案。它没有考虑时区或处理时间所带来的众多警告。你应该研究一下这种插件,它可以帮助你解决这个问题。
这应该在平均时间帮助你。将所有时间计算转换为分钟,然后进行数学运算,然后转换回小时和分钟。
var hours = currentTime.getHours();
var minutes = currentTime.getMinutes() + (hours * 60); //Convert current time to minutes
var d = new Date();
var weekday = new Array(7);
weekday[0] = "Sunday";
weekday[1] = "Monday";
weekday[2] = "Tuesday";
weekday[3] = "Wednesday";
weekday[4] = "Thursday";
weekday[5] = "Friday";
weekday[6] = "Saturday";
var n = weekday[d.getDay()];
var suffix = "AM";
var minsLeft = (16.5 * 60) - minutes //get total minutes remaining until 16.5 (4:30 pm)
var hoursLeft = Math.floor(minsLeft / 60); //Get how many hours are in our minsLeft
var minsLeft = minsLeft % 60; //remove the hours from the minsLeft