如何在javascript中计算X天前[重复]
Posted
技术标签:
【中文标题】如何在javascript中计算X天前[重复]【英文标题】:How to calculate X days ago in javascript [duplicate] 【发布时间】:2017-04-08 22:12:12 【问题描述】:在我的应用程序中,我正在访问远程 URL 并获得如下所示的 JSON 响应。 JSON 响应有一个名为created_at
的属性。
在 javascript 中,我需要获取当前日期减去(-)created_at
日期并计算创建评论的天数。
我该怎么做?
"id":12578834,
"title":"Joint R&D Has Its Ups and Downs",
"url":"http://semiengineering.com/joint-rd-has-its-ups-and-downs/",
"num_points":1,
"num_comments":0,
"author":"Lind5",
"created_at":"9/26/2016 2:28"
【问题讨论】:
您不需要指南 - 您拥有所需的一切:"i need to get the current date minus(-) this created_at date and calculate how many X days ago the comment was created"
。把英文转换成 JS。
试试momentjs.com
@Mehmet 我怀疑有人需要一个库来进行简单的减法。
它是一个轻量级的库,你可以将它用于所有的日期操作。
@shomz 我无法使用 created_at 字符串创建日期对象并进行减法
【参考方案1】:
您可以创建天,然后通过减去 today.getTime() - date.getTime()/NumOfMSecInDay
来获得差异。
另外,时间部分会导致一些问题,所以最好去掉它。
var d =
"id": 12578834,
"title": "Joint R&D Has Its Ups and Downs",
"url": "http://semiengineering.com/joint-rd-has-its-ups-and-downs/",
"num_points": 1,
"num_comments": 0,
"author": "Lind5",
"created_at": "9/26/2016 2:28"
var today = new Date();
var createdOn = new Date(d.created_at);
var msInDay = 24 * 60 * 60 * 1000;
createdOn.setHours(0,0,0,0);
today.setHours(0,0,0,0)
var diff = (+today - +createdOn)/msInDay
console.log(diff)
编辑:
根据@picacode,date.getTime
比+date
快。以下是JSPer Link
【讨论】:
我认为你不需要 setHours 调用 @mplugjan,感谢并为不正确的名称道歉 @maheshiv 如果你的createdon 是9/26/22016 20:30
并且你在11/24/2016 5:30
检查它会产生58
和11/24/2016 21:30
会产生59
。因此需要setHours
@maheshiv - 标准化时间总是一个好主意。如果今天是 DST 而几天前不是,那么您可能会遇到问题
我认为我们可以在最后连接 ':00' 并传递给 Date 函数。但我同意@mplungjan。以上是关于如何在javascript中计算X天前[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何在JavaScript中以以下形式转换对象数组? [重复]
你如何使用mongoose 5.x.x的arrayFilters? [重复]