我正在尝试比较两个时间值,我在jS中创建了一个新的date变量,然后将其传递给JSON中的Memberstack(有效)。然后,我在页面重新加载时调用数据,并从Memberstack中取回值以比较第一次加载和第二次加载之间的日期。
这是我的代码:
// Run timer. //
function runTimer() {
MemberStack.onReady.then(async function(member) {
var metadata = await member.getMetaData() // <------ call the initial date value from Memberstack
if (metadata.startDate != null) {
var initiatedDate = metadata["startDate"]; // <------ the initial date value
var referenceDate = currentDate; // <------ the second date value to compare to
var calcDifference = referenceDate.getTime() - initiatedDate.getTime(); // <------ errors here
var calcDifferenceD = calcDifference / (1000 * 3600 * 24);
alert(calcDifference);
}
})
}
// End run timer. //
当我尝试在控制台中调试时,会看到以下内容:
当我initiatedDate.getTime();
在第83行上运行时,出现此错误:
Uncaught (in promise) TypeError: initiatedDate.getTime is not a function
我需要使第81行和第82行匹配,以便可以进行比较,有人可以帮助我比较这两个日期吗?
这就是您问题的答案。您initiatedDate
不是对象,而是字符串,因此.getTime
不存在。因此,您应该将字符串转换为Date对象。
这是您可以做到的:
var initiatedDate = new Date(metadata['startDate'])
然后您的initializeDate将具有该.getTime
方法,并且不会出现错误。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句