Pedido de música com restrição de horário

by Cristiano Oliveira

HTML

<p><a href="javascript:pedirMusica();">Pedir Música</a></p>

<p><button onclick="pedirMusica();">Pedir Música</button></p>

JavaScript

function pedirMusica() {

	const diasPermitidos = [
  	["DOM", "09:10", "15:20"],
    ["SEG", "09:10", "15:20"],
    ["TER", "13:30", "15:30"],
    ["QUA", "09:10", "15:20"],
    ["QUI", "09:10", "15:20"],
    ["SEX", "09:10", "15:20"],
    ["SAB", "09:10", "15:20"]
  ];
	
	// Obtenha a hora atual do sistema
	const now = new Date();

  const currentHour = now.getHours();  // 24 horas
  const currentMinutes = addZero(now.getMinutes());
  const currentTime = (currentMinutes * 1) + (currentHour * 60);
  console.log("Hora atual", currentHour + ":" + currentMinutes, currentTime);

  const currentDay = now.getDay(); // número do dia da semana
  console.log("Dia atual: ", diasPermitidos[currentDay]);

	// Caso não tenha um horário definido no dia retorna FALSE, pode mudar a 
  // lógica para chamar o formulário caso não haja nenhuma restição de horário
	if (diasPermitidos[currentDay][1] == "" || 
  diasPermitidos[currentDay][2] == "") return false;

  const startHour = diasPermitidos[currentDay][1].split(':');
  const startTime = (startHour[1] * 1 ) + (startHour[0] * 60);
  console.log("Hora inicial", diasPermitidos[currentDay][1], startTime);
  
	const endHour = diasPermitidos[currentDay][2].split(':');
  const endTime = (endHour[1] * 1) + (endHour[0] * 60);
  console.log("Hora final", diasPermitidos[currentDay][2], endTime);

  // Verifique se a hora atual está dentro das horas permitidas
	if (currentTime >= startTime && currentTime <= endTime) {
  
  	// As horas estão dentro do intervalo permitido, o formulário pode ser enviado
  	// Adicione aqui o código para enviar o formulário
    abrirPopup( 'https://estudio76.com.br/pedido/pedido.html','780','560' );
    
	} else {
  
  	// As horas estão fora do intervalo permitido, o formulário não pode ser enviado
  	alert("Desculpe, o envio do formulário está disponível somente entre " + diasPermitidos[currentDay][1] + "h e " + diasPermitidos[currentDay][2] + "h");
  
	}
}

function abrirPopup(url, largura, altura) {
   ...