Javascript 查找今天的日期和时间与其他日期和时间之间的差异

Javascript 查找今天的日期和时间与其他日期和时间之间的差异,javascript,jquery,datetime,twig,hubl,Javascript,Jquery,Datetime,Twig,Hubl,我试图找出两个日期(和时间)之间的日期和时间差。我试图实现倒计时(到活动日期)功能,但我的方法遇到了问题 注意:下面定义的一些变量在HuBL中,HuBL可以在Javascript中使用,只要它们在同一个文件中 以下是我目前的做法: 1。我如何获得数据和时间 在HubSpot中,我有一个数据库表。在该表中,我有一个类型为date和time的列。作为参考,此字段中的值如下所示: 我已经运行了一个for循环,以获取它的日期和时间作为单独的变量(事件日期是数据库表中的列名): 要查看我使用的datet

我试图找出两个日期(和时间)之间的日期和时间差。我试图实现倒计时(到活动日期)功能,但我的方法遇到了问题

注意:下面定义的一些变量在
HuBL
中,
HuBL
可以在
Javascript
中使用,只要它们在同一个文件中

以下是我目前的做法: 1。我如何获得数据和时间

HubSpot
中,我有一个数据库表。在该表中,我有一个类型为
date和time
的列。作为参考,此字段中的值如下所示:

我已经运行了一个
for循环
,以获取它的
日期
时间
作为单独的变量(
事件日期
是数据库表中的列名):

要查看我使用的
datetimeformat
参数,请执行以下操作-

执行
{{event_date}}
打印:2020年9月7日
执行
{{event\u time}}
打印:11 59

2。现在我已经有了VAR中的日期和时间,我如何尝试找出差异

hero.html中的

{%用于表\u query%中的数据]
{%set event_date=data.event_date|datetimeformat(“%B%e,%Y')%}
{%set event_time=data.event_date|datetimeformat(“%H%M”)%}
{%endfor%}
var event_date=新日期(“{{event_date}}”);
var todays_date=新日期();
函数getDifferenceDays(事件日期、今天日期){
var diffInMs=Math.abs(今天的日期-事件日期);
返回差/(1000*60*60*24);
}
函数getDifferenceInHours(事件日期、今天日期){
var diffInMs=Math.abs(今天的日期-事件日期);
返回差/(1000*60*60);
}
函数getDifferenceInMinutes(事件日期、今天日期){
var diffInMs=Math.abs(今天的日期-事件日期);
返回差/(1000*60);
}
函数getDifferenceSeconds(事件日期、今天日期){
var diffInMs=Math.abs(今天的日期-事件日期);
返回差/1000;
}
log(getDifferenceDays(事件日期,今天日期));

您的问题在于事件数据。您可能会得到整数旁边的字符串。 例如,如果您硬编码了新的日期,您将得到控制台的答复

var event_date = new Date(2020, 08, 03, 12, 15, 30);
  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));



(检查控制台)

您的NaN来自于向日期构造函数提供一个字符串,该字符串围绕模板渲染输出

var event_date = new Date('{{ event_date }}');
// should be
var event_date = new Date({{ event_date }});
我认为您真正需要的是使用moment.js()

这里有一个简单的不同的例子。当前文档在持续时间方面非常广泛:


Hmm try:
var event_date=新日期({{event_date}})(删除单引号)
var event_date = new Date('{{ event_date }}');
// should be
var event_date = new Date({{ event_date }});
var now  = "04/09/2013 15:00:00";
var then = "02/09/2013 14:20:30";

var ms = moment(now,"DD/MM/YYYY HH:mm:ss").diff(moment(then,"DD/MM/YYYY HH:mm:ss"));
var d = moment.duration(ms).asDays();