Javascript开放时间倒计时

时间:2014-10-27 09:53:58

标签: javascript countdown

我想在我的网站上为当地商店使用开放时间倒计时。商店的营业时间为周一至周五的09:00至18:00,营业时间为周六10:00至16:30。 我想向用户展示商店在访问网站的那天开放的时间。例如,用户在星期二16:30在网站上我希望显示类似“亲爱的顾客,我们的商店再营业1.5小时”。 如果商店已经关闭,我想展示“我们目前已关闭,但欢迎您于周一9点访问商店。”。

我在这里和其他地方做了很多研究,但我找不到适合这项任务的解决方案,所以我真的希望你能帮助我。

3 个答案:

答案 0 :(得分:1)

制作一个数组映射您的开放时间,0为星期日

var openTime = [ {open : -1, close : -1},
                 { open: 9, close : 18 },
                 { open: 9, close : 18 },
                 { open: 9, close : 18 },
                 { open: 9, close : 18 }, 
                 { open: 9, close : 18 },
                 { open: 10, close : 16.5 }
              ]

然后在用户进入页面时进行检查。

var current = new Date();
var day = current.getDay();
var currentTime = current.getHours() + (current.getMinutes()/60);
var remainTime = 0;
if (openTime[day].open >= 0 && openTime[day].open < currentTime && openTime[day].close > currentTime) {
         remainTime= (openTime[day].close  - currentTime).toFixed(2)
}
console.log("the shop will close in %s hours", remainTime);

答案 1 :(得分:0)

首先,您需要获取当前日期,然后获得星期几,您可以这样做:

var currentdate = new Date();

// this will return a number between 0 and 6 indicating the day of the week.
// starting with 0 for Sunday.
var dayofweek = currentdate.getDay();

除了取决于星期几,您可以计算与此类似的剩余时间:

//e.g Friday:
if(dayofweek==5)
{
    var closedate=new Date();
    closedate.setMinutes(0);
    closedate.setHours(18);

    // this will give you the difference between the current time and opening time.
    var diff = closedate.getTime()-currentdate.getTime();
    var diff_seconds = diff / 1000;
}

答案 2 :(得分:0)

由于您需要根据星期几跟踪开放时间,因此您必须首先处理当前date,就像其他人指出的那样。你可以这样做:

 var d = new Date();
 d.getDay(); //returns the day of the week. Monday is 1 and so on.

一旦你有了一周中的某一天,只需要使用当前时间:

 d.getHours();
 d.getMinutes();
 d.getSeconds();

一旦你有这种形式的时间。您可以根据约束条件轻松计算商店关闭的剩余时间。希望这能让你开始朝着正确的方向前进。