簡體   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