Gostaria de saber como poderia criar um intervalo de datas.
Exemplo:
Quando digitar uma determinada data
Campo 01: 09/2014
Campo 02: 03/2015
Mostrar
09/2014
10/2014
11/2014
12/2014
01/2015
02/2015
03/2015
Gostaria de saber como poderia criar um intervalo de datas.
Exemplo:
Quando digitar uma determinada data
Campo 01: 09/2014
Campo 02: 03/2015
Mostrar
09/2014
10/2014
11/2014
12/2014
01/2015
02/2015
03/2015
Você já tem um trecho de código para a gente ver e ajudar?
Você pode usar está função:
function newDate($dataBase, $return, $incremento = "+1 days") {
$novaData = strtotime("$incremento", strtotime($dataBase));
return date("$return", $novaData);
}
No seu caso você usar assim:
function newDate($dataBase, $return, $incremento = "+1 days") {
$novaData = strtotime("$incremento", strtotime($dataBase));
return date("$return", $novaData);
}
// Datas nesse formato
$dataInicio = date("2014-09-01");
$dataFim = date("2015-03-01");
$newDate = $dataInicio;
echo date("m/Y", strtotime($newDate)) . "<br/>";
while ($newDate < $dataFim) {
$newDate = newDate($newDate, "Y-m-d", "+1 month");
echo date("m/Y", strtotime($newDate)) . "<br/>";
}
Resultado:
Espero ter ajudado
A parte do html ficou mais ou menos assim:
<form id="create" name="create" method="post" action="<?php $_PHP_SELF ?>">
<div class="control">
<label for="month">Mês Inicial</label>
<select name="month" id="month" required="required" class="SelectCampo">
<option value="">Selecione o mês inicial</option>
<option value="01">Janeiro</option>
<option value="02">Fevereiro</option>
<option value="03">Março</option>
<option value="04">Abril</option>
<option value="05">Maio</option>
<option value="06">Junho</option>
<option value="07">Julho</option>
<option value="08">Agosto</option>
<option value="09">Setembro</option>
<option value="10">Outubro</option>
<option value="11">Novembro</option>
<option value="12">Dezembro</option>
</select>
</div>
<div class="control">
<label for="year">Ano Inicial</label>
<input name="year" autocomplete="off" input-mask="9999" id="year" type="text" required="required" placeholder="xxxx">
</div>
<div class="clear"></div>
<div class="control">
<label for="end_month">Mês Final</label>
<select name="end_month" id="end_month" required="required" class="SelectCampo">
<option value="">Selecione o mês final</option>
<option value="01">Janeiro</option>
<option value="02">Fevereiro</option>
<option value="03">Março</option>
<option value="04">Abril</option>
<option value="05">Maio</option>
<option value="06">Junho</option>
<option value="07">Julho</option>
<option value="08">Agosto</option>
<option value="09">Setembro</option>
<option value="10">Outubro</option>
<option value="11">Novembro</option>
<option value="12">Dezembro</option>
</select>
</div>
<div class="control">
<label for="end_year">Ano final</label>
<input name="end_year" autocomplete="off" input-mask="9999" id="end_year" type="text" required="required" placeholder="xxxx">
</div>
<div class="control">
<input type="submit" onclick="limpar();" value="Preencher">
</div>
</form>
Em php ficou mais ou menos assim:
<?php
//Pegando valores dos campos
$getMes = isset($_POST['month']) ? $_POST['month'] : '';
$getMesFim = isset($_POST['end_month']) ? $_POST['end_month'] : '';
$getAno = isset($_POST['year']) ? $_POST['year'] : '';
$getAnoFim = isset($_POST['end_year']) ? $_POST['end_year'] : '';
//Fazendo a junção dos valores para o formato data
$campoDataInicio = $getAno . '-' . $getMes . '-01';
//Formato que tem que ser recebido $campoDataInicio = 2014-10-01
$campoDataFinal = $getAnoFim . '-' . $getMesFim . '-01';
//Mes-Ano Inicial e Final
$dataInicio = date($campoDataInicio);
$dataFim = date($campoDataFinal);
$newDate = $dataInicio;
while ($newDate < $dataFim) {
$newDate = newDate($newDate, "Y-m-d", "+1 month");
//echo date("m/Y", strtotime($newDate)) . "<br/>";
$months = array('', 'jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', 'ago', 'set', 'out', 'nov', 'dez');
$year = date("Y", strtotime($newDate));
$month = date("m", strtotime($newDate));
//Remove zero à esquerda
$month = ltrim($month, '0');
?>
<table>
<tr>
<td><label><?php echo $months[$month] . ' / ' . $year; ?></label></td>
<td>
<div class="control">
<input onkeyup="moeda(this);"
name="data[Orcamentos][<?php echo $year; ?>][<?php echo $month; ?>]"
autocomplete="off" type="text"
value="<?php echo isset($orcamentos[$year][$month]) ? number_format($orcamentos[$year][$month], 2, ',', '.') : ''; ?>"
>
</div>
</td>
</tr>
</table>
<?php
// fim do while
}
?>
}
Resultado da adptação:
Obrigado pela ajuda!!!
Ae man… conseguir fazer… veja ae…
Obrigado pela atenção!