上次使用JavaScript登录后的天数

上次使用JavaScript登录后的天数,javascript,Javascript,我想计算DaysSinceLastLogin,并想使用以下功能(在google上找到): 所以在我的场景中,我的firstdate格式是字符串:“2020-03-06 18:20:36:187” 而secondDate将是今天的日期,因此基本上我需要在上述函数中传递firstDate和secondDate,但格式不同,如何将firstDate和今天的日期转换为所需的格式?构造函数接受日期字符串作为第一个参数。如果使用的构造函数没有任何参数,则将使用当前日期对其进行初始化 const oneDay

我想计算DaysSinceLastLogin,并想使用以下功能(在google上找到):

所以在我的场景中,我的
firstdate
格式是字符串:
“2020-03-06 18:20:36:187”
secondDate
将是今天的日期,因此基本上我需要在上述函数中传递
firstDate
secondDate
,但格式不同,如何将
firstDate
和今天的日期转换为所需的格式?

构造函数接受日期字符串作为第一个参数。如果使用的构造函数没有任何参数,则将使用当前日期对其进行初始化

const oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds
const lastLoginDate = new Date("2020-03-06 18:20:36:187");
const todaysDate = new Date(); // Current date
const diffDays = Math.round(Math.abs((lastLoginDate - todaysDate) / oneDay));
但是,我建议使用一个库,例如在javascript中处理DateTime操作,因为即使是

注意:使用日期构造函数解析日期字符串(和 由于 浏览器差异和不一致

或者,您可以在服务器端处理日期时间操作(例如PHP),以确保一致的用户体验


最后,我还将介绍有关在JS中解析日期字符串的更多详细信息,这可能是您最初应该搜索的内容,而不是创建一个新问题。

Use如果
new Date()
不够,因为它返回小时、分钟、秒……,我建议您尝试使用JS中的矩框架。。。,然后我可以帮忙。只需执行
todaysDate.setHours(0,0,0,0)
,它会将任意时间设置为0,给出纯日期。@Liam我决定在写解释时先发布解决方案,以防OP是在快速响应后发布的。我现在更新了我的答案。
const oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds
const lastLoginDate = new Date("2020-03-06 18:20:36:187");
const todaysDate = new Date(); // Current date
const diffDays = Math.round(Math.abs((lastLoginDate - todaysDate) / oneDay));