Javascript 使用JS存储/计算日期/时间

Javascript 使用JS存储/计算日期/时间,javascript,date,time,date-arithmetic,Javascript,Date,Time,Date Arithmetic,在JS中保存一些时间信息的最佳实践是什么 在我的例子中,我想在创建用户帐户时保存datetime。创建帐户36小时后,我想向用户显示一条消息 现在我正在用newdate().getTime()保存一个时间戳。但是,也许只需使用newdate(),就可以计算某些事件 我就是这样做的,但感觉不是很优雅——特别是对于复杂的计算 var currentTime = new Date().getTime(); if ( (timeRegistrated + 1000 * 60 * 60 * 36 - cu

在JS中保存一些时间信息的最佳实践是什么

在我的例子中,我想在创建用户帐户时保存datetime。创建帐户36小时后,我想向用户显示一条消息

现在我正在用
newdate().getTime()保存一个时间戳。但是,也许只需使用
newdate()
,就可以计算某些事件

我就是这样做的,但感觉不是很优雅——特别是对于复杂的计算

var currentTime = new Date().getTime();
if ( (timeRegistrated + 1000 * 60 * 60 * 36 - currentTime) >= 0 ) {
    console.log('36h are over...');
}

我想我必须使用一些库来进行复杂的计算(比如用户的当前年龄或两个日期之间的月数)。。。但仍然存在一个基本问题:DB应该使用哪种类型的日期数据?

Moment.js有一个fromNow函数。这容易多了


你可以试试
+newdate()>timeregisted
。另外,如果您的代码正在运行,并且这个问题的目标是改进/优化,那么您应该尝试codereview而不是DB,因为时间戳是通用的。坚持下去。唯一更好的选择是,如果数据库有专用的日期时间格式。另外,除非您真的需要依赖项(库),否则请避免向代码中添加依赖项(库)。在一个与世隔绝的地方更优雅并不是包括图书馆的理由。作为替代方案,您可以通过更好地组织代码来变得更加优雅。优雅在编码人员眼中:
if(new Date()-timeRegsitered>1.296e8)
简洁明了。代码中的注释将有所帮助。OP中的逻辑不正确,如果测试返回true,则经过的时间不到36小时。如何使用momentJS(新用户的注册时间)保存当前日期?这有关系吗?Momentjs可以解析它,所以只需保存日期即可。new Date()应该可以很好地工作。事实上,我可能会保持它的无格式,因为它已经是数据库,并使用矩js格式的数据。比什么更容易?这里没有关于如何使用fromNow确定日期是否为36小时前的示例。给定36小时前的日期和时间字符串,
moment(timestring).fromNow()
返回“2天前”,该如何与
1456392547709
进行比较?
moment("20111031", "YYYYMMDD").fromNow();