【问题标题】:Getting Specific Number of Days With Moment.js, Node npm and Handlbars使用 Moment.js、Node npm 和 Handlebars 获取特定天数
【发布时间】:2018-11-18 02:40:57
【问题描述】:

我在节点把手中使用 moment.js。我找到了这个助手:http://moment.handlebars.solidgoldpig.com/,它很有用,但我希望能够计算从现在到未来特定日期之间的天数,并以天为单位返回答案。

{{moment "12/10/2018" "from" dfrom}} 返回“22 天”。 {{moment "12/25/2018" "from" dfrom}} 返回“一个月内”。我想要的是“38天”。

我不知道需要对车把进行哪些更改才能完成此操作。我将不胜感激任何和所有的建议。

为了跟进并详细说明对我有用的方法,我要补充这个问题。但本质上,Marcos Casagrande 的答案应该是公认的答案。

  1. 我通过命令行npm install moment --save安装了momentjs
  2. 在 server.js 中,我添加了 `var moment = require("moment");
  3. 然后我将 Marcos Casagrande 的答案复制到 server.js 中,但在计算中增加了一些精度。 return Math.abs(moment().startOf('day').diff(moment(date).startOf('day'), 'days')+1);
  4. 在我的车把视图中,我使用了{{days-diff "2018-12-25 00:00"}}
  5. 我没有在 html 文件的头部添加 moment.js。

【问题讨论】:

  • 这可能会有所帮助...momentjs.com/docs/#/displaying/difference
  • @dward,谢谢。我面临的挑战是将 moment.js 与 Handlebars 一起使用。
  • 您不能在服务器上进行比较或比较吗?如果您在车把循环之前对数组进行了变异或映射怎么办?不确定你的限制是什么。如果是客户端,请考虑在绑定或循环之前映射您的数组或修改对象。
  • 再次感谢@dward。因为我是新手,所以我并不完全清楚将什么代码放在哪里。 Marcos Casagrande 在下面的回答是正确的。
  • 无需惊呼你是新人,我们都是从某个地方开始的。 :)

标签: node.js npm handlebars.js momentjs


【解决方案1】:

几行代码就可以实现你想要的:

您只需要:dateA.diff(dateB, 'days'));

moment.suppressDeprecationWarnings = true;

Handlebars.registerHelper('days-diff', date => {
  return Math.abs(moment().diff(moment(date), 'days'));
});

const template = Handlebars.compile(`
  Until 12/10/2018: {{days-diff "12/10/2018"}}
  Until 12/25/2018: {{days-diff "12/25/2018"}}
  Until 12/25/2019: {{days-diff "12/25/2019"}}
`);

console.log(template());
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Handlebars</title>
   <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
   <script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.8/handlebars.js"></script>
<body>
</body>
</html>

【讨论】:

    猜你喜欢
    • 2016-06-03
    • 1970-01-01
    • 2021-05-30
    • 2022-01-13
    • 1970-01-01
    • 2014-03-17
    • 2019-03-22
    • 2018-12-17
    • 1970-01-01
    相关资源
    最近更新 更多