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

Asked

Viewed 862 times

2

I’m trying to sum up a date with another 30 days, down with 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 that way:

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

Esou making an invalid date type error. I believe the error is to add the days with my date attribute that is coming as String. Can anyone tell me a way to convert this String into a date of American format? Or is there some different way to add days to a date?

2 answers

2

For handling dates consistently recommend Moment.js (http://momentjs.com/).

If I understand your question correctly, you take the date of a text field. I will assume here that your date is in Brazilian format. Ex: 11/08/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();
}

1

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

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();

Browser other questions tagged

You are not signed in. Login or sign up in order to post.