使用 Moment.js、Node npm 和 Handlebars 获取特定的天数
Getting Specific Number of Days With Moment.js, Node npm and Handlbars
我在节点 Handlebars 中使用 moment.js。我找到了这个助手:http://moment.handlebars.solidgoldpig.com/,它很有用,但我希望能够计算从现在到未来特定日期之间的天数,以及 return 以天为单位的答案。
{{moment "12/10/2018" "from" dfrom}}
returns “22 天”。 {{moment "12/25/2018" "from" dfrom}}
returns "in a month"。我要的是“38天”。
我无法弄清楚车把需要更改什么才能实现此目的。我将不胜感激任何和所有建议。
为了跟进并提供对我有用的详细解释,我将添加到这个问题中。但本质上,Marcos Casagrande 的回答应该是公认的答案。
- 我通过命令行安装了 momentjs
npm install moment --save
- 在 server.js 我添加了 `var moment = require("moment");
- 然后我将 Marcos Casagrande 的答案复制到 server.js 中,但在计算中增加了一点精度。
return Math.abs(moment().startOf('day').diff(moment(date).startOf('day'), 'days')+1);
- 在我的车把视图中,我使用了
{{days-diff "2018-12-25 00:00"}}
- 我没有在 html 文件的头部添加 moment.js。
你可以通过几行代码实现你想要的:
您只需要: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>
我在节点 Handlebars 中使用 moment.js。我找到了这个助手:http://moment.handlebars.solidgoldpig.com/,它很有用,但我希望能够计算从现在到未来特定日期之间的天数,以及 return 以天为单位的答案。
{{moment "12/10/2018" "from" dfrom}}
returns “22 天”。 {{moment "12/25/2018" "from" dfrom}}
returns "in a month"。我要的是“38天”。
我无法弄清楚车把需要更改什么才能实现此目的。我将不胜感激任何和所有建议。
为了跟进并提供对我有用的详细解释,我将添加到这个问题中。但本质上,Marcos Casagrande 的回答应该是公认的答案。
- 我通过命令行安装了 momentjs
npm install moment --save
- 在 server.js 我添加了 `var moment = require("moment");
- 然后我将 Marcos Casagrande 的答案复制到 server.js 中,但在计算中增加了一点精度。
return Math.abs(moment().startOf('day').diff(moment(date).startOf('day'), 'days')+1);
- 在我的车把视图中,我使用了
{{days-diff "2018-12-25 00:00"}}
- 我没有在 html 文件的头部添加 moment.js。
你可以通过几行代码实现你想要的:
您只需要: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>