Estoy tratando de pasar la fecha y hora local del cliente actual a la API usando el método GET, obteniendo el error,
interfaz de usuario:
const localDateTime = new Date().toLocaleString(); await fetchDocument(`${process.env.REACT_APP_API_URL}/api/projects/${projectNumber}/${localDateTime}/${currentProjectPhase}`, setIsBodDownloading, instance, history );API:
[HttpGet("{projectNumber}/{localDateTime}/{projectPhase?}")] public async Task<ActionResult> BasisOfDesign( [FromServices] IDbContextFactory<APIDbContext> serviceScopeFactory, [FromServices] ICrmProjects crmProjects, [FromServices] IConfiguration configuration, [FromServices] IEmployeeContext employeeContext, string projectNumber, string localDateTime, string projectPhase = null, CancellationToken cancellationToken = default) { ..... .... }Recibo el siguiente error.
{"errors":[{"message":"Se debe configurar la consulta del parámetro o la identificación del parámetro".","extensions":{"code":"HC0013"}}]}
No puedo usar la hora del servidor y solo necesito usar la fecha y la hora del cliente para procesar los resultados. Estoy investigando este tipo de cadena "19-12-2012, 7:00:00 p. m."
¿Podría alguien decirme dónde estoy haciendo mal con el código anterior?
new Date().toISOString() producirá el formato ISO que generalmente aceptan las API (ISO-8601).
Console.log(new Date().toISOString()) Result:'2022-07-25T22:20:38.413Z'esta línea de código const localDateTime = new Date().toLocaleString(); está produciendo
7/25/2022, 9:59:46 PMque no es válido en la URL.
intente cambiarlo a una forma válida, tal vez así:
var dateObj = new Date(); var month = dateObj.getUTCMonth() + 1; //months from 1-12 var day = dateObj.getUTCDate(); var year = dateObj.getUTCFullYear(); newdate = year + "/" + month + "/" + day; console.log(newdate) // producing valid form to be used in URL like this 2022/7/25