Função interdata.
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.
Discussão (2)
Carregando comentários...