Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Eduardo M

Dificuldades de colocar no calendário os anos passando

Recommended Posts

Olá galera, tudo bem? 
Estou precisando de uma ajuda de vocês acontece, que eu estou criando um calendário, porem esse calendário não passa o ano quando eu aperto as setas pro lado!
Vou disponibilizar os códigos para  alguém me ajudar pois estou precisando muito deste calendário!

 

calendario.php

<?php
    function num($num){
        return ($num < 10) ? '0'.$num : $num;
    }

    function montaEventos($info){
        global $pdo;
        //tabela, data, titulo
        $tabela = $info['tabela'];
        $data = $info['data'];
        $titulo = $info['titulo'];
        $link = $info['link'];
		$vagas = $info['vagas'];

        $eventos = $pdo->prepare("SELECT * FROM `".$tabela."` WHERE `".$data."` ");
        $eventos->execute();

        $retorno = array();
        while($row = $eventos->fetchObject()){
            $dataArr = date('Y-m-d', strtotime($row->{$data}));
            $retorno[$dataArr] = array(
                'titulo' => $row->{$titulo}, 
				'link' => $row->{$link},
				'vagas' => $row->{$vagas}
            );
        }
        return $retorno;
    }


    function diasMeses(){
        $retorno = array();

        for($i = 1; $i<=12;$i++){
            $retorno[$i] = cal_days_in_month(CAL_GREGORIAN, $i, date('Y'));
        }

        return $retorno;
    }

    function montaCalendario($eventos = array()){
        $daysWeek = array(
            'Sun',
            'Mon',
            'Tue',
            'Wed',
            'Thu',
            'Fri',
            'Sat'
        );
        $diasSemana = array(
            'Dom',
            'Seg',
            'Ter',
            'Qua',
            'Qui',
            '---',
            'Sab'
        );

        $arrayMes = array(
            1 => 'Janeiro',
            2 => 'Fevereiro',
            3 => 'Março',
            4 => 'Abril',
            5 => 'Maio',
            6 => 'Junho',
            7 => 'Julho',
            8 => 'Agosto',
            9 => 'Setembro',
            10 => 'Outubro',
            11 => 'Novembro',
            12 => 'Dezembro'
        );
		
	If($_GET['mes'] and $_GET['ano'])
	{
	   $mes = $_GET['mes'];
	  
	   $ano = $_GET['ano'];
	}
	Else
	{
	   $mes = date("m");
	   $ano = date("Y");
	}
	$t_mes = date("t", mktime(0, 0, 0, $mes, 1, $ano)); 
	$mes_ant = date("m", mktime(0, 0, 0, $mes, 0, $ano));
	$ano_ant = date("Y", mktime(0, 0, 0, $mes, 0, $ano));

	$mes_post = date("m", mktime(0, 0, 0, $mes, $t_mes+1, $ano));  
	$ano_post = date("Y", mktime(0, 0, 0, $mes, $t_mes+1, $ano));  

        $diasMeses = diasMeses();
        $arrayRetorno = array();

        for($i =1; $i <= 12; $i++){
            $arrayRetorno[$i] = array();
            for($n=1; $n<= $diasMeses[$i]; $n++){
                $dayMonth = gregoriantojd($i, $n, date('Y'));
                $weekMonth = substr(jddayofweek($dayMonth, 1),0,3);
                if($weekMonth == 'Mun') $weekMonth = 'Mon';
                $arrayRetorno[$i][$n] = $weekMonth;
            }
        }

        echo '<a href="#" id="volta">&laquo;</a><a href="#" id="vai">&raquo;</a>';
        echo '<table border="0" width="100%">';
        foreach($arrayMes as $num => $mes){
            echo '<tbody id="mes_'.$num.'" class="mes">';
            echo '<tr class="mes_title"><td colspan="7">'.$mes.' - '.date('Y').'</td></tr>';
            echo '<tr class="dias_title">';
            foreach($diasSemana as $i => $day){
                echo '<td>'.$day.'</td>';
            }
            echo '</tr><tr>';
            $y = 0;
            foreach($arrayRetorno[$num] as $numero => $dia){
                $y++;
                if($numero == 1){
                    $qtd = array_search($dia, $daysWeek);
                    for($i=1; $i<=$qtd; $i++){
                        echo '<td></td>';
                        $y+=1;
                    }
                }
                if(count($eventos) > 0){
                    $month = num($num);
                    $dayNow = num($numero);
                    $date = date('Y').'-'.$month.'-'.$dayNow;
                    if(in_array($date, array_keys($eventos))){
                        $evento = $eventos[$date];
						
						if($evento['vagas'] <> 0){							
                        	echo '<td class="evento2"><a class="dcontexto" href="'.$evento['link'].'" target="_parent">'.$numero.'<span>Vagas '.$evento['vagas'].'</span></a></td>';
						}else{ 
							echo '<td class="evento1"><a class="dcontexto" target="_parent">'.$numero.'<span> Não há mais Vagas</span></a></td>';}
                    }else{
                        echo '<td class="dia_'.$numero.'" ><a href="../../agenda.php?data='.$numero.'-'.$mes.'" class="numeros"  target="_parent">'.$numero.'</a></td>';
                    }
                }else{
                    echo '<td class="dia_'.$numero.'">'.$numero.'</td>';
                }
                if($y == 7){
                    $y=0;
                    echo '</tr><tr>';
                }
            }
            echo '</tr></tbody>';
        }
        echo '</table>';
    }
?>

e na minha duvida e no JS

 

js/functions.js

$(function(){
    var data = new Date();
    var mesAtual = data.getMonth()+1;
    var diaAtual = data.getDate();
	var anoAtual = data.getFullYear();
	var dataAtual = diaAtual+'/'+mesAtual+'/'+anoAtual;
	var contCalendario = 0;
	
    $('#mes_'+mesAtual).show().find('.dia_'+diaAtual).addClass('atual');

    function hideShow(){
        if(mesAtual > 12){
            mesAtual = 1;
			anoAtual = +1;
			
        }else if(mesAtual < 1){
            mesAtual = 12;
			anoAtual = -1;
        }

        $('.mes').hide();
        $('#mes_'+mesAtual).show();
    }

    $('#vai').on('click', function(e){
        e.preventDefault();
        mesAtual++;
        hideShow();

        return false;
    });

     $('#volta').on('click', function(e){
        e.preventDefault();
        mesAtual--;
		if(mesAtual < 1){
			anoAual - -1;}
        hideShow();

        return false;
    });
});

eu acho que estou errando no JAVASCRIPT

 

para quem for me ajudar vou deixar o link do calendário.

http://www.nebbclean.com.br/calendario.rar

 

Agradeço!


Att,

Eduardo Moura

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Kefatif
      Prezados boa tarde.
       
      Preciso bloquear a edição de um date input de forma que só seja possível selecionar a data através do calendário.
       
      Alguém pode me ajudar?
       
      Utilizo php, html e js.
       
      <input type="date" value="<?php echo $data ?>" name="datacoleta" class="form-control" required style="width:100%;">  
      Agradeço desde já.
    • Por Kefatif
      Prezados boa tarde.
       
      Preciso bloquear a edição de um date input de forma que só seja possível selecionar a data através do calendário.
       
      Alguém pode me ajudar?
       
      Utilizo php, html e js.
       
      <input type="date" value="<?php echo $data ?>" name="datacoleta" class="form-control" required style="width:100%;">  
      Agradeço desde já.
    • Por Pedro S.
      Conheço pouco de PHP e, de ultima hora, estou tendo que fazer um sistema de agendamento para barbearias como projeto. O sistema teria um calendário com os dias, meses e ano, onde o usuário poderia clicar no dia que desejasse, se disponível, e escolher o horário que desejasse, também se disponível. Todo o resto do site já foi feito, essa é única parte que não tenho noção de como fazer. 
    • Por fdesign
      Boa tarde,
      Estou com uma grande duvida e dilema. Como poderei fazer para sincronizar o calendário google, com o meu email profissional? Na vez de usar o email @gmail.com usar @minhaempresa.com
       
      Há alguma forma gratuita? E no android / ios a conta a ser utilizada é a profissional e não a do gmail.
       
      Obrigado amigos
    • Por tony_lu
      Ola pessoal, preciso de uma ajuda...estou usando um campo date onde o usuário seleciona a data no calendário e submete o formulário!
       
      <form method="post" id="form" name="form"> <input type="date" name="data" id="data" value=""> </form> Eu preciso que o usuario ao abrir o calendario e escolher o dia desejado, ao clicar ja submeta o formulario sem que precise clicar em um botão para enviar! Podem me ajudar?!
       
      Obrigado!
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.