Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bruno M Duarte

Função interdata.

Recommended Posts

Bom dia pessoal!

 

Estou tendo um probleminha em um função que criei e resolvi pedir ajuda a você aqui do forum.

 

função js.

function interdata_brasil(dt,qtd,opc){ 
		
		var dt_aux = dt.split("-");
		var data = new Date(dt_aux[2],dt_aux[1],dt_aux[0]);
		
		switch (opc){
			case 'd':{
				data.setDate(data.getDate() + parseFloat(qtd));
				break;
			}
			case 'm':{
				data.setMonth(data.getMonth() + parseFloat(qtd));
				break;
				}
			case 'a':{
				data.setFullYear(data.getFullYear() + parseFloat(qtd));
				break;
			}	
		}
		
		var dia = (data.getDate() < 10)  ? '0'+data.getDate()  : data.getDate();
		var mes = (data.getMonth() < 10) ? '0'+data.getMonth() : data.getMonth();
		var ano = data.getFullYear();
		
		var minhaData = dia + '-' + mes + '-' + ano;
	    return minhaData;
	}

A finalidade dessa função é somar (dia(s), mês e ano(s)) conforme for declarado os parâmetros. Ex:

//Chamando a função dentro de um alert para poder ver o resultado.
alert(interdata_brasil('10-12-2014','5','d'));

Onde:

O 1º parâmetro é a data que deseja.

O 2º parâmetro é a quantidade em número(dias, mês ou ano).

O 3º parâmetro é a onde será somado os números do 2º parâmetro.

 

A minha dúvida é o seguinte.

Os mês que eu recuperado pela função getMonth() me retorna como um array onde janeiro(mês 01) é correspondido na posição '0' e o mês de dezembro está na posição '11'. E com essa lógica a minha função retorna um valor errado.Ex:

Quando eu informo a data: '10-12-2014' a função me retorna: 10-00-2014 -> ou seja o mês '00' se refere-se a janeiro. e gostaria que ficasse assim:

'01' => Janeiro

'02' => Fevereiro

'03' => Março

'04' => Abril

'05' => Maio

'06' => Junho

'07' => Julho

'08' => Agosto

'09' => Setembro

'10' => Outubro

'11' => Novembro

'12' => Dezembro

 

Com tantas explicações espero que tenha sido claro. :D

 

Desde já eu agradeço a ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera conseguir resolver o problema aqui.

Segui o código.

function interdata_brasil(dt,qtd,opc){ //criado em 24-04-2014
	
	var dt_aux = dt.split("-");
	var dia = dt_aux[0];
	var mes = dt_aux[1]-1; //para respeitar o array 0=>janeiro, 1=>fevereiro ~ 11=>dezembro
	var ano = dt_aux[2];
	var data = new Date(ano,mes,dia);
	
	switch (opc){
		case 'd':{
			data.setDate(data.getDate() + parseFloat(qtd));
			break;
		}
		case 'm':{
			data.setMonth(data.getMonth() + parseFloat(qtd)); 
			break;
			}
		case 'a':{
			data.setFullYear(data.getFullYear() + parseFloat(qtd));
			break;
		}	
	}
	
	var dia = (data.getDate() < 10) ? '0'+data.getDate() : data.getDate();
	var mes = ((data.getMonth() + 1) < 10) ? '0'+(data.getMonth()+1) : data.getMonth()+1;
	var ano = data.getFullYear();
	
	var minhaData = dia + '-' + mes + '-' + ano;
    return minhaData;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja se ajuda:

<script type="text/javascript">
        window.onload = function(){
            function interdataBrasil(dt,qtd,opc){
                var dt_aux = dt.split("-");
                var data = new Date(dt_aux[2], dt_aux[1]-1, dt_aux[0]);
                switch (opc){
                    case 'd':{
                        data.setDate(data.getDate() + parseFloat(qtd));
                        break;
                    }
                    case 'm':{
                        data.setMonth(data.getMonth() + parseFloat(qtd));
                        break;
                        }
                    case 'a':{
                        data.setFullYear(data.getFullYear() + parseFloat(qtd));
                        break;
                    }    
                }
                var dia = (data.getDate() < 10)  ? '0' + data.getDate() : data.getDate();
                var mes = (data.getMonth() < 10) ? '0' + data.getMonth() : data.getMonth() + parseFloat(1);
                var ano = data.getFullYear();
                var minhaData = dia + '-' + mes + '-' + ano;
                return minhaData;
            }
            alert(interdataBrasil('10-12-2014','5','a'));
        }
    </script>

Não vi que ja tinha resolvido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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