2014-10-27 1 views
0

Я хотел бы использовать обратный отсчет времени открытия для отдельных дней на моем сайте для местного магазина. В магазине есть часы работы с понедельника по пятницу с 09:00 до 18:00 и открыт в субботу с 10:00 до 16:30. Я хотел бы показать пользователям, как долго магазин открыт в тот день, когда они посещают веб-сайт. Например, пользователь находится на сайте во вторник в 16:30. Я хочу показать что-то вроде «Уважаемый клиент, наш магазин открыт еще на 1,5 часа». Если магазин уже закрыт, я хотел бы показать что-то вроде «Мы в настоящее время закрыты, но вы можете посетить магазин в понедельник в 9 часов».Javascript Часы работы обратного отсчета

Я провел много исследований здесь и в других местах, но я просто не мог найти подходящего решения для этой задачи, поэтому я действительно надеюсь, что вы могли бы мне помочь.

+0

Вы провели много исследований? [Здесь] (http://countdownjs.org/). Найдено через 2 сек. –

+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

Исправить логику открыть, закрыть – Kai

+0

Это выглядит очень хорошо. Как я могу провести время внутри определенного div? Я попробовал [что-то здесь] (http://jsfiddle.net/hupnaybv/), но похоже, что есть некоторые ошибки. Как я могу добавить еще одно сообщение, когда магазин закрыт? – Supapinzi

+0

кажется, что вы не знали основ программирования, это нормально, если вы не программист, но ужасно, но да. Исправлено: http://jsfiddle.net/hupnaybv/1/ – Kai

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; 
} 
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(); 

После того, как у вас есть время в этой форме. Вы можете легко подсчитать, сколько времени осталось для закрытия магазина на основе ваших ограничений. Надеюсь, это поможет вам начать в правильном направлении.