将Javascript定时器设置为半小时



我需要做一个倒计时到下午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分钟"的东西。

有人有什么想法吗?

正如上面一位评论者建议的那样,以分钟为单位进行计算。将小时转换为总分钟,并确保分钟在参数范围内。

要显示分钟,只需使用模运算符来获得当前小时上方的分钟数。

例如,如果还剩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小时"之类的话。

最新更新