如何在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 检查它会产生5811/24/2016 21:30 会产生59。因此需要setHours @maheshiv - 标准化时间总是一个好主意。如果今天是 DST 而几天前不是,那么您可能会遇到问题 我认为我们可以在最后连接 ':00' 并传递给 Date 函数。但我同意@mplungjan。

以上是关于如何在javascript中计算X天前[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Javascript 中的数组中删除重复项?

如何在JavaScript中以以下形式转换对象数组? [重复]

你如何使用mongoose 5.x.x的arrayFilters? [重复]

计算字符串中的重复符号并使用Javascript对它们进行分组

我如何显示PHP中处于隐藏状态的文本[重复]

如何在javascript中获取一位随机数? [复制]