Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

97
Views
Solución de problemas de una fecha que no se analiza en Javascript

Recuperar las propiedades de fecha de una API web de C# que parecía estar bien pero tuvo problemas al conectarlo a DevExtreme DateBox. Estaba arrojando un error de 'getFullYear no es una función', así que verifiqué las fechas con esta función que encontré aquí:

 let r: any = http.post('/get', { Param1: 2, Param2: 1 }); console.log(r.StartDate); console.log(this.isValidDate(r.StartDate)); r.StartDate = new Date(r.StartDate); r.EndDate = moment(r.EndDate); console.log('Start Date', this.isValidDate(r.StartDate)); console.log('End Date', this.isValidDate(r.EndDate)); isValidDate(d: any): void { if (Object.prototype.toString.call(d) === "[object Date]") { console.log('it is a date'); if (isNaN(d)) { // d.getTime() or d.valueOf() will also work console.log('date object is not valid'); } else { console.log('date object is valid'); } } else { console.log('not a date object'); } } StartDate: "/Date(1657512000000)/" not a date object undefined it is a date date object is not valid Start Date undefined not a date object End Date undefined

No estoy seguro de por qué esto no ha surgido antes con esta API, pero no quería mirar a DevExpress dado que no puedo producir una fecha válida.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Proporciono esta respuesta para demostrar una forma de analizar la marca de tiempo en la cadena que tiene del siguiente formato, inferido por console.log(r.StartDate); ... /Date(TS)/ :

 // Provided the date has the following structure in a string var anyStartDate = "/Date(1657512000000)/"; // Prepare to parse it out by getting the positions of the parentheses var openParens = anyStartDate.indexOf("("); var closeParens = anyStartDate.indexOf(")"); // Parse out the timestamp var timeStampStr = anyStartDate.substring(openParens + 1, closeParens); console.log( timeStampStr ); // 1657512000000 // Convert timestamp to an int. You can do this when you create the obj, but I am separating it here for explanation purposes. var timeStampInt = parseInt( timeStampStr ); // Now create a date object var dateObj = new Date( timeStampInt ); console.log( dateObj ); // (on the machine I'm on): // Outputs: Mon Jul 11 2022 00:00:00 GMT-0400 (Eastern Daylight Time) // Or outputs: 2022-07-11T04:00:00.000Z

Ahora no sé qué biblioteca (s) está utilizando para manejar las fechas, así que simplemente opté por el objeto Date nativo. Sin embargo, puede usar esta SOLUCIÓN en más información para aplicarla a su código.

El punto es que una vez que se extrae la marca de tiempo, se puede usar para crear un objeto Fecha y, por lo tanto, utilizar todos los métodos que son inherentes a esa clase.

En términos de la "zona horaria", para llegar a UTC, ya está en UTC, pero JavaScript lo formatea según la configuración regional de su computadora. Internamente sigue siendo UTC. Hay una forma de mostrarlo como estrictamente UTC que se encuentra en los documentos.

`

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!