Issue
When a put day 31 in the input field, the JSON 'dt_ini_vigencia' and 'dt_fin_vigencia' is changing for day 1. could anyone help me understand this?
JSON date format in input: '2022-12-31T03:00:00.000Z' this is what the JSON returns after this function: '2022-12-01T03:00:00.000Z' to 'dt_ini_vigencia' '2023-12-01T03:00:00.000Z' to 'dt_fin_vigencia'.
this problem only happens when a put day 31 in the input
`
var cotacaoJson = JSON.parse(resp[0].ds_cotacao_json);
var date = new Date();
date.setDate(cotacaoJson.dt_ini_vigencia.substring(8, 10)); //apparently is on this line
date.setMonth(cotacaoJson.dt_ini_vigencia.substring(5, 7) - 1);
date.setFullYear(cotacaoJson.dt_ini_vigencia.substring(0, 4));
date.setHours(0);
date.setMinutes(0);
date.setSeconds(0);
date.setMilliseconds(0);
var dateF = new Date();
dateF.setDate(cotacaoJson.dt_fin_vigencia.substring(8, 10));
dateF.setMonth(cotacaoJson.dt_fin_vigencia.substring(5, 7) - 1);
dateF.setFullYear(cotacaoJson.dt_fin_vigencia.substring(0, 4));
dateF.setHours(0);
dateF.setMinutes(0);
dateF.setSeconds(0);
dateF.setMilliseconds(0);
this.cotacao = cotacaoJson;
if (!this.editar)
{
this.cotacao.clausulas_particulares = 'N/A';
}
this.cotacao.dt_ini_vigencia = date;
this.cotacao.dt_fin_vigencia = dateF;
`
save the 31st in date and dateF
Solution
It is because new Date()
returns the current date. It is November now, so the maximum date you can pass is 30.
To fix this first set year, then a month, and only then a date
Answered By - Azizbek PhD
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.