Quiero actualizar la hora de la publicación cuando el usuario creó la publicación. Probé algún método pero no obtuve los resultados esperados.
Nota: estoy almacenando la publicación creada en una matriz. (en la zona)
const posts = []; const addedDate = new Date(); const addedTime = addedDate.getMinutes(); exports.getIndex = (req, res, next) => { res.render('index', { pageTitle: 'NewsFeed', path: '/', post: posts, time: addedTime, }); }; exports.getPost = (req, res, next) => { res.render('post', { pageTitle: 'Create Post', path: '/post', }); }; exports.postAddPost = (req, res, next) => { posts.unshift({ title: req.body.title }); res.redirect('/'); };Aquí está la foto de la hora de publicación que no se está actualizando. Quiero que la hora se actualice automáticamente como hace 1 minuto, hace 1 hora, hace 1 día.
Utilice la biblioteca momentJS. tienen todos los formatos que necesitas. El que quieres es FromNow.
Parece que creas "addedDate" una vez cuando ejecutas tu aplicación usando la hora actual. Cuando muestra su fuente de noticias, pasa los minutos de la hora en que inició su aplicación.
Supongo que está tratando de mostrar cuándo se creó una publicación. En este caso, debe agregar la hora actual a su objeto de publicación:
exports.postAddPost = (req, res, next) => { posts.unshift({ title: req.body.title, added: new Date() }); res.redirect('/'); };Luego, en su plantilla, iteraría sobre la matriz de publicaciones que pasa como "publicación" y accedería a las propiedades a través de "publicación.título" y "publicación.agregada".
No estoy seguro de lo que tenías en mente con respecto a las actas. Si tenía la intención de mostrar algo como "publicado hace 5 minutos", entonces podría crear otra Fecha en su plantilla y compararla con la propiedad "agregado" de su publicación para descubrir la diferencia.
La diferencia se puede calcular con bastante facilidad con JavaScript estándar, solo puede restar dos objetos Date y obtener la diferencia en milisegundos:
const post = { title: 'Title', added: new Date(), }; // some time later const now = new Date(); const milliseconds = now - post.added; const seconds = ms / 1000; const minutes = seconds / 60;Y así.