Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Prezados Amigos eu tenho o código abaixo e
Com este código eu consegui gerar o calendário de um mês
Porém eu preciso conseguir mudar o mês e escolher as datas (necessito os dias sejam links)
<?php
date_default_timezone_set('America/Sao_Paulo');
$date =time();
$hoje = date('j');
$day = date ('d',$date);
$month = date ('m', $date);
$year = date ('Y', $date);
$first_day = mktime(0,0,0, $month,1, $year);
$title = date('F', $first_day);
$day_of_week = date('D', $first_day);
switch($day_of_week){
case "Sun": $blank = 0; break;
case "Mon": $blank = 1; break;
case "Tue": $blank = 2; break;
case "Wed": $blank = 3; break;
case "Thu": $blank = 4; break;
case "Fri": $blank = 5; break;
case "Sat": $blank = 6; break;
}
$days_in_month = cal_days_in_month(0, $month, $year);
echo "<table border=6 width=394>";
echo "<tr><th colspan=60> $title $year</th></tr>";
echo "<tr><td width=62>S</td><td width=62>M</td><td width=62>T</td><td width=62>W</td><td width=62>Th</td><td width=62>Fri</td><td width=62>Sat</td></tr>";
$day_count = 1;
echo "<tr>";
while ($blank > 0){
echo "<td></td>";
$blank = $blank-1;
$day_count++;
}
$day_num = 1;
while ($day_num <= $days_in_month){
echo "<td> $day_num </td>";
$day_num++;
$day_count++;
if ($day_count > 7){
echo "<tr></tr>";
$day_count = 1;
}
}
while ($day_count > 1 && $day_count <=7){
echo "<td> </td>";
$day_count++;
}
echo "</tr></table>";
?>
Eu dei uma olhada neste código
if(empty($_GET['data'])){//navegaçao entre os meses
$dia = date('d');
$month =ltrim(date('m'),"0");
$ano = date('Y');
}else{
$data = explode('/',$_GET['data']);//nova data
$dia = $data[0];
$month = $data[1];
$ano = $data[2];
}
if($month==1){//mês anterior se janeiro mudar valor
$mes_ant = 12;
$ano_ant = $ano - 1;
}else{
$mes_ant = $month - 1;
$ano_ant = $ano;
}
if($month==12){//proximo mês se dezembro tem que mudar
$mes_prox = 1;
$ano_prox = $ano + 1;
}else{
$mes_prox = $month + 1;
$ano_prox = $ano;
}
$hoje = date('j');//função importante pego o dia corrente
switch($month.$n){/notem duas variaveis para o switch para identificar dia e limitar numero de dias/
case 1: $mes = "JANEIRO";
$n = 31;
break;
case 2: $mes = "FEVEREIRO";// todo ano bixesto fev tem 29 dias
$bi = $ano % 4;//anos multiplos de 4 são bixestos
if($bi == 0){
$n = 29;
}else{
$n = 28;
}
break;
case 3: $mes = "MARÇO";
$n = 31;
break;
case 4: $mes = "ABRIL";
$n = 30;
break;
case 5: $mes = "MAIO";
$n = 31;
break;
case 6: $mes = "JUNHO";
$n = 30;
break;
case 7: $mes = "JULHO";
$n = 31;
break;
case 8: $mes = "AGOSTO";
$n = 31;
break;
case 9: $mes = "SETEMBRO";
$n = 30;
break;
case 10: $mes = "OUTUBRO";
$n = 31;
break;
case 11: $mes = "NOVEMBRO";
$n = 30;
break;
case 12: $mes = "DEZEMBRO";
$n = 31;
break;
Mas não estou conseguindo unir os dois
Por favor quem puder ajudar, pode ser ate com sugestões diferentes do que eu postei encima
Grato desde já
to tentando aprender to vendo aqui
Minha unica dúvida tá na formatação da data
PReciso formatar a data para que fique igual a nossa no Brasil e não to conseguindo
Da view para o model, ou vice-versa?
Eu to com este codigo ele não traduz o calendário e a data fica com o mês primeiro e depois o dia
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>Calendário jQuery</title>
<link rel="stylesheet" href="[http://code.jquery.com/ui/1.9.0/themes/base/jquery-ui.css](http://code.jquery.com/ui/1.9.0/themes/base/jquery-ui.css)" />
<script src="[http://code.jquery.com/jquery-1.8.2.js">](http://code.jquery.com/jquery-1.8.2.js)
<script src="[http://code.jquery.com/ui/1.9.0/jquery-ui.js">](http://code.jquery.com/ui/1.9.0/jquery-ui.js)
<script>
$(function() {
$( "#calendario" ).datepicker();
});
</script>
</head>
<body>
<p>Data: <input type="text" id="calendario" /></p>
<script>
$(function() {
$( "#calendario" ).datepicker({
showButtonPanel:true
});
});
</script>
<script>
$(function() {
$("#calendario").datepicker({
changeMonth: true,
changeYear: true
});
});
</script>
<script>
$(function() {
$("#calendario").datepicker({
showOtherMonths: true,
selectOtherMonths: true
});
});
</script>
<script>
$(function() {
$("#calendario").datepicker({
dateFormat: 'dd/mm/yy',
dayNames: ['Domingo','Segunda','Terça','Quarta','Quinta','Sexta','Sábado','Domingo'],
dayNamesMin: ['D','S','T','Q','Q','S','S','D'],
dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb','Dom'],
monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun','Jul','Ago','Set','Out','Nov','Dez']
});
});
</script>
</body>
</html>E gostaria de colocar um botão hoje para quando clicar vir para o dia atual
Cara, existem vários calendários client-side, basta dar uma procurada e encontrar o que você achar melhor.
Veja este outro: http://xdsoft.net/jqplugins/datetimepicker/
Este tem suporte a outras linguagens e botão "home", que é o "hoje".
Estou dando uma olhada se eu não conseguir fazer no php vou tentar algum destes, porque além de fazer depois ele terá que interagir com php também
Não seria mais fácil um calendário em client-side?
https://jqueryui.com/datepicker/#other-months