繁体   English   中英

如何在 node.js 本地更新发布时间

[英]how to update posted time locally in node.js

我想在用户创建帖子时更新帖子时间。 我尝试了一些方法,但没有得到预期的结果。

注意 - 我将创建的帖子存储在数组中。 (本地)

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('/');
};

这是发布时间未更新的图片我想像 1 分钟前 - 1 小时前 - 1 天前一样定时自动更新

https://i.stack.imgur.com/eTD02.png

使用 momentJS 库。 他们拥有您需要的所有格式。 你想要的是 FromNow。

当您使用当前时间运行您的应用程序时,您似乎创建了一次“addedDate”。 当您显示新闻提要时,您会传递启动应用程序的分钟数。

我假设您正在尝试显示帖子的创建时间。 在这种情况下,您应该将当前时间添加到您的帖子 object:

exports.postAddPost = (req, res, next) => {
  posts.unshift({ title: req.body.title, added: new Date() });

  res.redirect('/');
};

然后在您的模板中,您将遍历作为“post”传递的 posts 数组,并通过“post.title”和“post.added”访问属性。

我不确定你对会议记录有什么看法。 如果您打算显示类似“5 分钟前发布”的内容,那么您可以在模板中创建另一个日期并将其与帖子的“已添加”属性进行比较以找出差异。

使用 vanilla JavaScript 可以很容易地计算出差异,您只需减去两个 Date 对象并获得以毫秒为单位的差异:

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;

等等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM