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

295
Views
Formato de tiempo de Nodo-PostgreSQL

Tengo dos tablas nombradas en usuarios y card_info en mi base de datos de Postgres. Creé un punto final para registrar nuevos usuarios y le di un campo llamado dateCreated como se muestra en el código a continuación.

Registro.js

 const handleRegister=(req,res,db,bcrypt,saltRounds)=>{ const {name,phno,dob,email,username,password,aadharCard}=req.body; if(!name || !email|| !phno || !dob || !username || !password || !aadharCard){ return res.status(400).json('Wrong Form Submission'); } const hash=bcrypt.hashSync(password,saltRounds); const accNo=Math.floor(2E9+Math.random()*1E9); const dateCreated=new Date().toJSON().slice(0,10); db('users') .insert({ username:username, name:name, email:email, password:hash, dob:dob, phno:phno, aadhar:aadharCard, acc_no:accNo, created_date:dateCreated }) .returning('*') .then(users=>{ res.json(users[0]); }) .catch(err=>res.status(400).json("Unable to register")); } module.exports={ handleRegister:handleRegister }

En el punto final de la tarjeta, estoy seleccionando el año de creación del usuario cuya identificación se envía como solicitud. Luego almaceno estos valores en la tabla card_info usando valores calculados. Se supone que la fecha de caducidad es 4 años más que el año_creado. La identificación de los usuarios de la tabla es una clave externa de la tabla card_info

Tarjeta.js

 const genCard=(req,res,db)=>{ const {id,cardType} =req.body; db.select('created_date').from('users').where("id","=",id) .then(data=>{ const createdDate=data[0].created_date.toString(); db('card_info') .insert({ card_number:Math.floor(Math.random()*1E17), owner_id:id, expiration_date: createdDate.replace(parseInt(createdDate),parseInt(createdDate)+4), cvv:Math.floor(Math.random()*1E3), card_type:cardType }) .returning('*') .then(users=>{ console.log(res.json(users[0])); }) .catch(err=>res.json(err.message)) }) .catch(err=>res.json(err)); } module.exports={ genCard }

Captura de pantalla del cartero

Este es el error que recibo: "insertar en "card_info" ("card_number", "card_type", "cvv", "expiration_date", "owner_id") valores ($1, $2, $3, $4, $5) regresando * - zona horaria "gmt+0300" no reconocida".

He probado varios métodos de formateo de fecha pero nada parece funcionar. Por favor, hágamelo saber si alguien tiene una solución a esto.

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

0

Evitaría todos los intentos de manipular cadenas que representan fechas; solo resulta en lágrimas y, a menudo, no considera los casos extremos. Más bien manipule la fecha directamente. Recomendaría Luxon que proporciona un envoltorio probado en batalla alrededor de la Date y tiene funciones convenientes que facilitan el manejo de las fechas.

 // convert to DateTime object const createdDate = DateTime.fromJSDate(data[0].created_date); // add 3 months const futureDate = createdDate.plus({months: 3}); // insert a date object db('card_info').insert({ card_number:Math.floor(Math.random()*1E17), ... created: futureDate, // or futureDate.toJSDate() })

Manifestación:

 const { DateTime } = luxon; // convert a saved date from the DB to DateTime const dt = DateTime.fromJSDate(new Date()); // add 3 months const futureDate = dt.plus({ months: 3 }); console.info(futureDate.toFormat('yyyy-MM-dd'), futureDate.toJSDate());
 <script src="https://cdn.jsdelivr.net/npm/luxon@2.0.2/build/global/luxon.min.js"></script>

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!