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();