繁体   English   中英

尝试修复Java Countdown。 我不知道我在做什么

[英]Trying to fix a Javascript Countdown. I have no idea what I'm doing

帮助我堆栈溢出基诺比,您是我唯一的希望。

所以上周我问了这个问题:

我需要制作一个倒数至下午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-hours”,使我到下午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的解决方案插入原始脚本中? 讨厌成为负担,但我在这里超出了我的理解范围。 我觉得我无能为力地在污染着这个网站,但是需要帮助,你们是我唯一能想到的。

提前致谢!

好的,所以...作为开头,这不是一个非常优雅的解决方案。 它没有考虑时区或与时间有关的任何警告。 您应该研究某种可以帮助您解决此问题的插件。

同时,这应该可以为您提供帮助。 将所有时间计算转换为分钟,然后进行数学运算,然后转换回小时和分钟。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM