Bug #1955
Date field type is getting an error
0%
Description
When using FormDialog and using a field of Date Type, if you try to open an editing (not new) form you will get an error when the date field is parsing.
History
#1
Updated by Maurício Dos Santos almost 9 years ago
You can check it when try to open a followup edit form or contact edit form.
#2
Updated by Maurício Dos Santos almost 9 years ago
- Status changed from New to In Progress
#3
Updated by Maurício Dos Santos almost 9 years ago
- Status changed from In Progress to Resolved
O problema é que o formData que tras uma data do servidor, esta trazendo a data no formato string 'aaaa-mm-dd'
Transformar essa data usando o meio abaixo causa outro problema...
const dt = isString(val) ? new Date(Date.parse(val)) : val;
Fazendo desse jeito o javascript, por alguma razão relacionada a timezone, calcula com um dia a menos. Ex, se val é '2016-05-23' o codigo acima estava fazendo com que dt fosse um date do dia 2016-05-22.
Consegui resolver o problema adicionando o codigo abaixo no render do date-control.
let value = this.props.value; if (isString(value)) { value = moment(this.props.value)._d; }
Porem, tem um problema. observe que eu tive que pegar a propriedade _d de moment. Acho que deve haver outro meio de pegar a data mas nao encontrei na documentação.
#4
Updated by Maurício Dos Santos almost 9 years ago
Outro detalhe...
quando eu recebo uma lista de ENTITYData o javascript já recebe a data como tipo Date.
quando eu recebo uma lista de ENTITYFormData o javascript recebe a data no formato String 'aaaa-mm-dd'. Por isso esse problema só ocorria quando tentava abrir um form com um date já setado.
#5
Updated by Ricardo Memoria almost 9 years ago
- Status changed from Resolved to Closed
- Assignee set to Maurício Dos Santos