Converting String to Date and adding days to a specific date.

2

I'm trying to sum up a date with 30 more days, below the way I'm trying to do:

  function validarContinuacaoCiclo(){
            var dataEmissaoGuia = $("#hiddenDataEmissaoGuia").val();
            var dataPrevistaAdministracao = $("#dataPrevistaAdministracaoTratamento").val();
            var dataEmissãoValidada = new Date(dataEmissaoGuia.getDate + 30); 

}

I tried to do it this way too:

function validarContinuacaoCiclo(){
        var dataEmissaoGuia = $("#hiddenDataEmissaoGuia").val();
        var dataPrevistaAdministracao = $("#dataPrevistaAdministracaoTratamento").val();
        var dataEmissãoValidada = new Date(); 
        dataEmissãoValidada.setDate(dataEmissaoGuia.getDate() + 30);
}

I'm taking an invalid date type error. I believe the error is when adding the days with my date attribute that is coming as String . Can someone tell me a way to convert this String to a date of the American format? Or is there any other way to add days to a date?

    
asked by anonymous 12.08.2014 / 02:19

2 answers

2

To consistently manipulate dates, I recommend Moment.js ( link ).

If I understand your question correctly, you get the date from a text field. I'll assume here that your date is in the Brazilian format. Ex: 08/11/2014.

function validarContinuacaoCiclo(){
  var dataEmissaoGuia = $("#hiddenDataEmissaoGuia").val();
  var dataPrevistaAdministracao = $("#dataPrevistaAdministracaoTratamento").val();

  // transforma o texto em um objeto data
  var dataEmissaoGuiaParseada = moment(dataEmissaoGuia, "DD/MM/YYYY");

  // adiciona 30 dias e retorna um objeto Date javascript
  var dataEmissãoValidada = dataEmissaoGuiaParseada.add('days', 30).toDate();
}
    
12.08.2014 / 03:04
1

Thanks for the @agcorrea tip. I made it differently using Split . It makes the values separated by the character that is defined in the tag, come arrays, thus making it possible to add days only to the array that the developer wants. p>

function validarContinuacaoCiclo(retorno){
        var dataEmissaoGuia = $("#hiddenDataEmissaoGuia").val().split('/');
        var dataPrevistaAdministracao = $("#dataPrevistaAdministracaoTratamento").val().split('/');
        var dataPrevistaAdministracaoArray = new Date(dataPrevistaAdministracao[2],dataPrevistaAdministracao[1],dataPrevistaAdministracao[0]);
        var dataEmissãoFormatadaArray = new Date(dataEmissaoGuia[2],dataEmissaoGuia[1],dataEmissaoGuia[0]);
        var cicloAtualQuimoterapia = $('#cicloAtualTratamentoQuimioterapia').val();
        var cicloAtualTratamentoQuimioterapiaCalculo = $('#cicloAtualTratamentoQuimioterapiaCalculo').val();

        dataEmissãoFormatadaArray.setDate(dataEmissãoFormatadaArray.getDate() + 30);
    //  var dataEmissaoValidada = dataEmissãoFormatadaArray.getDate() + '/' + dataEmissãoFormatadaArray.getMonth() + '/' + dataEmissãoFormatadaArray.getFullYear();
    //  var dataPrevistaAdministracaoFormatada = dataPrevistaAdministracaoArray.getDate() + '/' + dataPrevistaAdministracaoArray.getMonth() + '/' + dataPrevistaAdministracaoArray.getFullYear();
    
13.08.2014 / 15:39