【发布时间】:2020-08-02 22:11:06
【问题描述】:
我正在尝试查找两个日期(和时间)之间的日期和时间差。我正在尝试实现倒计时(到事件日期)功能,但我的方法遇到了问题。
注意:下面定义的一些变量在HuBL中,HuBL可以在Javascript中使用,只要它们在同一个文件中即可。
这是我目前的做法:
1.我如何获取数据和时间
在HubSpot,我有一个数据库表。在该表中,我有一个类型为date and time 的列。作为参考,该字段的值如下:
我运行了一个for loop 来获取它的date 和 time 作为单独的变量(event_date 是数据库表中的列名):
{% for data in table_query %}
{% set event_date = data.event_date|datetimeformat('%B %e, %Y') %}
{% set event_time = data.event_date|datetimeformat('%H %M') %}
{% endfor %}
要查看我使用过的datetimeformat 参数 - see the documentation here
正在执行{{ event_date }} 打印:2020 年 9 月 7 日
执行{{ event_time }} 打印:11 59
2。现在我有了 vars 中的日期和时间,我如何尝试找出差异
在 hero.html 中:
{% for data in table_query %}
{% set event_date = data.event_date|datetimeformat('%B %e, %Y') %}
{% set event_time = data.event_date|datetimeformat('%H %M') %}
{% endfor %}
<script>
var event_date = new Date('{{ event_date }}');
var todays_date = new Date();
function getDifferenceInDays(event_date, todays_date) {
var diffInMs = Math.abs(todays_date - event_date);
return diffInMs / (1000 * 60 * 60 * 24);
}
function getDifferenceInHours(event_date, todays_date) {
var diffInMs = Math.abs(todays_date - event_date);
return diffInMs / (1000 * 60 * 60);
}
function getDifferenceInMinutes(event_date, todays_date) {
var diffInMs = Math.abs(todays_date - event_date);
return diffInMs / (1000 * 60);
}
function getDifferenceInSeconds(event_date, todays_date) {
var diffInMs = Math.abs(todays_date - event_date);
return diffInMs / 1000;
}
console.log(getDifferenceInDays(event_date, todays_date));
</script>
我的问题:
通过以上内容,我得到了console.log 的NaN。我试图在days、hours、minutes、seconds 中获得结果,因为我将它划分为事件计时器的倒计时。
我完全不知道如何检查事件时间 - 试图让倒数计时器尽可能准确,倒数到事件开始,但不确定我该如何做到这一点
注意:标记twig,语法类似于HubL
【问题讨论】:
-
嗯试试看:
var event_date = new Date({{ event_date }});(去掉单引号)
标签: javascript jquery datetime twig hubl