Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Encontrei código na internet para usar, porém está dando "erro".
$ano = $_POST['atrib4']. $mes = $_POST['atrib5']. for($dd=1. $dd<$quantidadedia + 1. $dd++)case"0": $diasemana = "Domingo". break. case"1": $diasemana = "Segunda-Feira". break. case"2": $diasemana = "Terça-Feira". break. case"3": $diasemana = "Quarta-Feira". break. case"4": $diasemana = "Quinta-Feira". break. case"5": $diasemana = "Sexta-Feira". break. case"6": $diasemana = "Sábado". break. } } Janeiro e Fevereiro estão OK. O restante dos meses está tudo errado. O dia não confero com o Switch. Já tentei de tudo. Alguém pode me ajudar. Obrigado.O código acima foi só um exemplo...
$ano = $_POST['atrib4'];
$mes = $_POST['atrib5'];
for($dd=1; $dd<$quantidadedia + 1; $dd++)
{
$diasemana = date("w", mktime(0,0,0,$mes,$dd,$anoo));
switch($diasemana) {
case"0": $diasemana = "Domingo"; break;
case"1": $diasemana = "Segunda-Feira"; break;
case"2": $diasemana = "Terça-Feira"; break;
case"3": $diasemana = "Quarta-Feira"; break;
case"4": $diasemana = "Quinta-Feira"; break;
case"5": $diasemana = "Sexta-Feira"; break;
case"6": $diasemana = "Sábado"; break;
}
}
Então, eu resumi o código acima...
É que estou usando para incluir registros e preciso saber com certeza os dias que são sábado, domingo etc. Pois dependendo do dia é incluido algo diferente...
Como eu comentei, o mês de janeiro e fevereiro de 2015 estão perfeitos segundo o código acima. Porém, inexplicavelmente os meses posteriores não estão de acordo com o código acima...Por exemplo, às vezes a ordem ali (que vai de 0=Domingo ao sábado=6) está diferente.
Consegui achar a de março. Porém, os meses subsequentes são diferentes também....
não queria achar manualmente cada mês, pois não quero limitar ao ano de 2015...
E já inverti a ordem ali do mktime para (d-m-Y) ou (m-d-Y) ou mesmo (Y-m-d) porém não uniformizou...
Eu não entendo o porquê dos meses janeiro e fevereiro funcionar corretamente e os outros não...
$diasemana = date("w", mktime(0,0,0,$mes,$dd,$anoo));
Você está usando a variável "$anoo", sendo que o correto seria $ano.
//$ano = $_POST['atrib4'];
//$mes = $_POST['atrib5'];
$ano = '2015';
$mes = '08';
$ultimo_dia_mes = date('t', strtotime($ano.'-'.$mes.'-01'));
//echo $ultimo_dia_mes.'<br />';
for($dd=1; $dd<=$ultimo_dia_mes; $dd++)
{
$diasemana = date("w", mktime(0,0,0,$mes,$dd,$ano));
switch($diasemana) {
case"0": $diasemana = "Domingo"; break;
case"1": $diasemana = "Segunda-Feira"; break;
case"2": $diasemana = "Terça-Feira"; break;
case"3": $diasemana = "Quarta-Feira"; break;
case"4": $diasemana = "Quinta-Feira"; break;
case"5": $diasemana = "Sexta-Feira"; break;
case"6": $diasemana = "Sábado"; break;
default: $diasemana = 'erro';
}
echo $diasemana.'<br />';
}O problema estava exatamente ai. Obrigado.
Está funcionando legal agora, mas tenho que por o ano como variável definida:
$ano = '2015';
porque se eu pegar de um txt não funciona, você sabe me dizer o por quê?
$ano = $_POST['txtano'];
dê um print_r($_POST) e veja o que está vindo do formulário...
Consegui. Por algum motivo a variável estava vindo com um caractere a mais, então sub-esseterrei ela.
Seu switch está ilógico, não está verificando nada aí.
dê um print na variável $u e veja o que retorna.