Bom dia gostaria de exibir data atual e hora atual formatado no campo data, mas não estou conseguindo o retorno que aparece no console é este:
Uncaught Error: Deve estar no formato aaaa-mm-dd
at Function.paraData (DateConverter.js:12)
at RegistroController._criaRegistro (RegistroController.js:31)
at RegistroController.adiciona (RegistroController.js:15)
index.html
<form class="form">
<div class="form-group">
<!--value="Date.now()"-->
<input type="hidden" id="data" class="form-control" autofocus />
</div>
<div class="form-group">
<label for="nome">Nome</label>
<input type="text" id="nome" class="form-control" autofocus />
</div>
<div class="form-group">
<label for="exampleFormControlSelect1">Tipo de Documento</label>
<select class="form-control" id="tipo_documento">
<option value="rg">RG</option>
<option value="cpf">CPF</option>
<option value="outros">OUTROS</option>
</select>
</div>
<div class="form-group">
<label for="documento">Número do Documento</label>
<input id="numero_documento" type="number" class="form-control" value="0" />
</div>
<button class="btn btn-primary" type="submit">Incluir</button>
</form>
<div class="text-center">
<button id="botao-importa" class="btn btn-primary text-center" type="button">
Importar Movimento
</button>
<button id="botao-apaga" class="btn btn-primary text-center" type="button">
Apagar
</button>
</div>
<br>
<br>
<table class="table table-hover table-bordered">
<thead>
<tr>
<th>DATA/Hora</th>
<th>NOME</th>
<th>TIPO DOCUMENTO</th>
<th>NUMERO DOCUMENTO</th>
</tr>
</thead>
<tbody>
</tbody>
<tfoot>
</tfoot>
</table>
<script src="app/domain/registro/Registro.js"></script>
<script src="app/controllers/RegistroController.js"></script>
<script src="app/ui/converters/DateConverter.js"></script>
<script src="app/domain/registro/Registros.js"></script>
<script src="app/app.js"></script>
</body>
classe RegistroController onde adiciono as informações e faço a exibição:
class RegistroController {
constructor() {
let $ = document.querySelector.bind(document);
this._inputData = $('#data');
this._inputNome = $('#nome');
this._inputTipo_documento = $('#tipo_documento');
this._inputNumero_documento = $('#numero_documento');
this._registros = new Registros();
}
adiciona(event) {
event.preventDefault();
<!--linha 15-->
this._registros.adiciona(this._criaRegistro());
console.log(this._registros);
this._limpaFormulario();
}
_limpaFormulario() {
this._inputData.value = '';
this._inputNome.value = '';
this._inputTipo_documento.value = '';
this._inputNumero_documento.value = '';
this._inputData.focus();
}
_criaRegistro() {
// retorna uma instância de negociação
return new Registro(
<!--linha 31-->
DateConverter.paraData(this._inputData.value),
this._inputNome.value,
this._inputTipo_documento.value,
parseFloat(this._inputNumero_documento.value)
);
}
}
DateConverter
class DateConverter {
constructor() {
throw new Error('Esta classe não pode ser instanciada');
}
static paraTexto(data) {
return `${data.getDate()}/${data.getMonth() + 1}/${data.getFullYear()}`;
}
static paraData(texto) {
if (!/^\d{4}-\d{2}-\d{2}$/.test(texto))
<!--linha 12"-->
throw new Error('Deve estar no formato aaaa-mm-dd');
return new Date(...texto.split('-').map((item, indice) =>item - indice % 2));
}
}