【问题标题】:chrome.history api - deleteRangechrome.history api - 删除范围
【发布时间】:2014-08-09 07:09:39
【问题描述】:

Chrome.history API 提供了这个方法:

删除范围

chrome.history.deleteRange(对象范围,函数回调)

从历史记录中删除指定日期范围内的所有项目。除非所有访问都在该范围内,否则页面不会从历史记录中删除。

(来自https://developer.chrome.com/extensions/history#method-deleteRange

我的问题是:你如何定义范围?

我尝试过使用 Javascript date() 对象,但它们似乎不起作用。 使用简单的整数是行不通的。


编辑

事实证明,纪元事件实际上是 1970 年 1 月 1 日 00:00:00 UTC

为了获得正确的毫秒数,我使用了

var oldDate = Date.now();

对于第一个 startDate 属性和

var newDate = Date.now();

用于 endDate 属性。

在我的情况下,编码结果是:

chrome.history.deleteRange( {startTime: oldDate , endTime: newDate } , function(){ 
    console.log("Dates Removed");
});

非常感谢 bzlm 提供的帮助。

【问题讨论】:

  • 当你使用简单整数时,这些整数代表什么?
  • 我以为纪元是Chrome窗口的开启,所以我用了0,然后按了一个按钮的mills数量。当然,现在我知道我做错了。
  • 获取当前 UNIX 时间戳的更惯用方法是 Date.now(),而不是 new Date().valueOf()
  • 根据 StackOverflow 上的其他帖子,它也更快,因为它不会在每次调用它时创建一个新对象。我已根据您的建议编辑了我的帖子。

标签: google-chrome-extension


【解决方案1】:

根据您链接到的文档,范围是一个具有两个属性的对象,startTimeendTime,它们是日期

表示自纪元以来的毫秒数。

例如,

chrome.history.deleteRange({ startTime: 1303125199, endTime: 1403125199 }, ...)

应该可以。 JavaScript 具有将日期对象转换为纪元的内置功能。

【讨论】:

  • 这似乎可以解决问题。但是,您如何获得这些整数?你怎么知道 startTime 以及它代表什么? endTime 也是如此。
  • 您可以convert 从普通日期对象到“自纪元以来的毫秒数”,这就是这些整数的含义。 1403125199 表示自1970 以来的 1403125199 秒(即 16240 天)。 “纪元”一词的意思是“参考时间”。纪元时间是一种将日期和时间表示为易于解析的数字的简单方法。
  • 啊哈!所以那是我没有得到的。因为我是相当新的编码,我认为时代是 Chrome 的开始!非常非常非常感谢!
猜你喜欢
  • 2018-08-12
  • 1970-01-01
  • 2014-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-25
  • 2021-03-05
  • 1970-01-01
相关资源
最近更新 更多