Ir para conteúdo
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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • 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!
    • Por ggbelgamo
      Pessoal estou tentando exibir os eventos no meu calendário, porém não estou tendo sucesso. Sou iniciante em Jquery e após pesquisar em vários sites e consultar vários exemplos não consegui exibir os eventos. O calendário é exibido, os eventos não!
       
      Minha controller (ASP MVC):
      var listCalender = new List<object>(); var dal = new DAL.PosVendasParticipantesDAL(); var calender = dal.Todos(); if (calender.Rows.Count > 0) { foreach (DataRow dr in calender.Rows) { var entity = new Modelos.PosVendasParticipantesModelo(); entity.ID = Convert.ToInt32(dr["ID"]); entity.ProximaLigacao = Convert.ToDateTime(dr["PROXIMA_LIGACAO"]); listCalender.Add(new { title = entity.ID, start = entity.ProximaLigacao, }); } } return Json(listCalender, JsonRequestBehavior.AllowGet);  
      Após o retorno Json, obtenho os seguintes dados:
      [{"title":1,"start":"\/Date(1469725020000)\/"},{"title":2,"start":"\/Date(1469725020000)\/"},{"title":3,"start":"\/Date(1470674040000)\/"} É exatamente os parâmetros que o fullCalendar exige pra exibir eventos, acho que estou sabendo interpretar o Json retornado!
       
      Jquery:
      <script> $(document).ready(function() { $('#calendar').fullCalendar({ header: { left: 'prev,next today', center: 'title', right: 'month,basicWeek,basicDay' }, defaultDate: '2018-03-12', navLinks: true, // can click day/week names to navigate views editable: true, eventLimit: true, // allow "more" link when too many events events: $(function (start, end, timezone, callback) { $.ajax({ dataType: "json", type: "POST", contentType: "application/json; charset=utf-8", url: "/Home/GetEvents", success: function (dados) { alert('foi'); $(dados).each(function (i) { //document.writeln("<p>ID: " + dados[i].id + " | Data: " + dados[i].Start + "</p>") events.push({ title: $(this).attr('title'), start: $(this).attr('start') }); }); } }); }) }); }); </script>  
    • Por ggbelgamo
      Sou iniciante em ASP MVC e não estou conseguindo fazer com que o meu controller retorne os dados do banco no calendário, ele só retorna uma página em branco com o Json. Tentei seguir alguns exemplos pesquisando na internet mas não obtive sucesso!
       
      Controller
      public JsonResult Calendario() { var verCookie = Request.Cookies.Get(GerarHashMd5("idUser")); if (verCookie == null) { RedirectToAction("Login"); } var listCalender = new List<Modelos.PosVendasParticipantesModelo>(); var dal = new DAL.PosVendasParticipantesDAL(); var calender = dal.Todos(); if (calender.Rows.Count > 0) { foreach (DataRow dr in calender.Rows) { var entity = new Modelos.PosVendasParticipantesModelo(); entity.ID = Convert.ToInt32(dr["ID"]); entity.ProximaLigacao = Convert.ToDateTime(dr["PROXIMA_LIGACAO"]); listCalender.Add(entity); } } return Json(listCalender.ToArray(), JsonRequestBehavior.AllowGet);  
      Jquery
      $(document).ready(function () { $('#calendar').fullCalendar({ header: { left: 'prev,next today', center: 'title', right: 'month,agendaWeek,agendaDay,listWeek' }, defaultDate: '2018-03-12', navLinks: true, // can click day/week names to navigate views editable: true, eventLimit: true, // allow "more" link when too many events events: "/Home/Calendario", }); });  
×

Informação importante

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