Jump to content

Recommended Posts

Posted

Caros, sou iniciante em PHP e tenho que fazer uma atividade e não sei como... Do tipo: A pagina tem que imprimir todas as datas que caiem na segunda-feira e quarta-feira num período de dia 03 de fevereiro a 5 de julho de 2014.

Posted (edited)

isso é uma questão mais de (my)SQL doque de php...

SELECT * FROM `table` WHERE `coluna_data` BETWEEN "03-02-2014" AND "05-07-2014" ORDER BY `coluna_data` ASC;

ou

SELECT * FROM `table` WHERE `coluna_data` >= "03-02-2014" AND `coluna_data` <= "05-07-2014" ORDER BY `coluna_data` ASC;
Edited by I-NOZex

B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net
Posted

isso é uma questão mais de (my)SQL doque de php...

não sei como tiraste essa conclusão ...

$curstrdate = '2014-03-12';
$targetstedate = '2014-04-15';

$curdate = strtotime($curstrdate);
$targetdate = strtotime($targetstedate);

$curday = date("N", $curdate);

if ($curday == 1) {
   $advance = 0;
   $jump = 2;
} else if ($curday < 3) {
   $advance = 0;
   $jump = 5;
} else if ($curday == 3) {
   $advance = 0;
   $jump = 5;
} else {
   $advance = 8 - $curday;
   $jump = 2;
}

$stepdate = strtotime($curstrdate.' +'.$advance.' days');
while ($stepdate < $targetdate) {
   echo date("Y-m-d", $stepdate).' ('.date('N', $stepdate).' >> '.date('l', $stepdate).')<br />';

   $next = date("Y-m-d", $stepdate).' +'.$jump.' days';
   $stepdate = strtotime($next);
   $jump = ($jump == 2) ? 5 : 2;
}
IRC : sim, é algo que ainda existe >> #p@p
Posted

aqui : $curstrdate é somente o nome da variável ou esta transformando para o tipo?

não estou conseguindo fazer isto: As datas tem que sair separadas por virgulas e a ultima data com um ponto final.

Posted

não estou conseguindo fazer isto: As datas tem que sair separadas por virgulas e a ultima data com um ponto final.

o código demonstrado apresenta todas as segunda e quartas entre duas datas, logo, como o código está correcto e a questão é somente de apresentação, nem me vou dignificar a responder a esse problema, onde é pretendido "ter a papinha toda feita".

já te arranjei a água e a farinha, já me dei ao trabalho de juntar tudo vigorosamente e colocar num recipiente jeitoso, não querias mais nada que eu agora tivesse de te dar à boquinha ...

  • Vote 1
IRC : sim, é algo que ainda existe >> #p@p
Posted (edited)

não sei como tiraste essa conclusão ...

$curstrdate = '2014-03-12';
$targetstedate = '2014-04-15';

$curdate = strtotime($curstrdate);
$targetdate = strtotime($targetstedate);

$curday = date("N", $curdate);

if ($curday == 1) {
$advance = 0;
$jump = 2;
} else if ($curday < 3) {
$advance = 0;
$jump = 5;
} else if ($curday == 3) {
$advance = 0;
$jump = 5;
} else {
$advance = 8 - $curday;
$jump = 2;
}

$stepdate = strtotime($curstrdate.' +'.$advance.' days');
while ($stepdate < $targetdate) {
echo date("Y-m-d", $stepdate).' ('.date('N', $stepdate).' >> '.date('l', $stepdate).')<br />';

$next = date("Y-m-d", $stepdate).' +'.$jump.' days';
$stepdate = strtotime($next);
$jump = ($jump == 2) ? 5 : 2;
}

tentei exibir no navegar e não vai... falta <php? ?

Edited by Hercles
Posted

consegui fiz esta função:

<?php
function diaPt($dia)
{
$diasemanapt = array(
'Mon'=>'Seg',
'Tue'=>'Ter',
'Wed'=>'Qua',
'Thu'=>'Qui',
'Fry'=>'Sex',
'Sat'=>'Sabado',
'Sun'=>'Dom');
return ($diasemanapt[$dia]);
}
?>

Ainda não sei como vou fazer para que a ultima data não apareça uma virgula e sim um ponto final. Qua 25-06, Seg 30-06, Qua 02-07. <== ponto final

Posted (edited)
<?php
$inicio = strtotime ('03-02-2014);
$fim=strtitime ('05-06-2014);
$segundosdias = 24*60*60;
$strdias = "dias de aula:";

$aux = $inicio;
while ($aux <= $fim) {
   if (date('w', $$aux) == 1){
	 $strDias.=' seg'.date('d/m',$aux). ',';
	 $aux += 2*segundosDias;
  } else if (data ('w',$aux) == 3) {
	 $strDias .= 'qua ' .date ('d/m', $aux).',';
	 $aux+=5=$segundosDias;
  }
}
echo rtrim($strDias, ",").".";
?>
Edited by Hercles

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.