在 Firefox 中,可以查看历史记录 ( Ctrl++ ) 并选择列ShiftH最近访问,但这只显示精确到一分钟的时间。我怎样才能获得更高的精度,至少精确到秒?
我更喜欢在浏览器本身中运行的解决方案,例如扩展或about:config
设置,但如果不可能的话,我也很乐意知道如何在配置文件数据中找到它。
动机
就我而言,我想检查一下,因为一个练习围棋的网站——郭娟的网络围棋学校– 可能会根据解决问题所花的时间长短而做出不同的反应。
其他讨论
当我试图找到这个问题的时候,我偶然发现了一个非常古老的(Firefox 3 之前)讨论http://forums.mozillazine.org/viewtopic.php?f=38&t=500060有人提到了一个附加组件(第 1957 号),显然已不复存在。
在 Android Stack Exchange 中,有人问“如何在 Firefox Android 中查看历史记录项目的时间戳?”,谈到“确切时间”,但那里的答案只是提到最近访问将历史记录同步到 PC 后,Firefox 会显示该列。
答案1
您有以下几种可能的情况:
- 使用不受监控的 Firefox 附加组件:简单,有限,使用风险自负。
- 使用 SQL 检查 Firefox 的数据库:功能强大,更棘手 - 更适合高级用户。
使用更好的历史添加在
有一个未受监控(即“使用风险自负”)插件,它的作用是更好的历史.¹ 在其“日视图”中,可以显示最接近的秒数的时间以及对同一站点的多次访问,这与仅显示最后一次访问的普通历史记录不同。
不便之处在于(截至 2020-06-13),我能找到的查看一年前的日视图的唯一方法是冒着 RSI 风险单击其←按钮 365 或 366 次!
¹ 根据下面的评论,自 2024-02-19 起,需要分叉此插件。
检查配置文件数据中的时间戳
对于 Firefox 78.0.1(可能还有许多其他版本),您可以在 Firefox 配置文件数据中找到时间戳。如果您了解(或学习过)SQL,这将为您提供更大的灵活性。
这世界标准时间上次访问的时间以微秒为单位存储UNIX 纪元在列last_visit_date
中SQLite数据库places.sqlite
位于 Firefox 配置文件目录中。可以使用日期和时间函数SQLite。似乎此表中的某些行可能具有NULL
值last_visit_date
;我不知道这是什么意思。
sqlite3
我已使用3.28.0(2019-04-16)和1.2.2测试了以下说明sqliteman
。
您可以按照以下步骤检查时间戳:
- 确保安装了
sqliteman
(GUI)或sqlite3
(命令行),或者安装了可以检查SQLite使用 SQL 查询的数据库。- 或许这是在 Firefox 安装中,但在我看来并不像这样。
- 如果你不知道你的 Firefox 配置文件数据在哪里,请查找以下内容:
- https://support.mozilla.org/en-US/kb/profiles-where-firefox-stores-user-data#w_how-do-i-find-my-profile。
- 即在 Firefox 中:Menu- Help- Troubleshooting Information,第 8行下应用程序基础知识
- 如果这样做,您可能需要单击Open directory按钮在文件管理器中打开它。
- 复制时间戳数据或准备访问数据库:
- 要处理副本,请将数据库
places.sqlite
从您的配置文件目录复制到某个位置(例如,临时目录或您的桌面)。- 即使 Firefox 处于活动状态,这也是可能的,但是您可能看不到所有访问– 我观察到它们不完整,我认为只有最后两三个缺失,但不能确定。(有些数据库系统支持在数据库处于活动使用状态时复制数据库,但我认为 SQLite 不支持。)
- 如果要查看甚至修改原始数据库:
- 仅当您非常肯定你在做什么; 如果不是,你的个人资料可能会被损坏!
- 似乎只有在您不使用 Firefox 时才可以就地访问它,这可能会排除其他进程访问其数据库,因此如果 Firefox 处于活动状态,请关闭它,否则您将无法访问数据。
- 无论如何,您可能都想制作一份备份!
- 要处理副本,请将数据库
- 使用 GUI 访问复制的(或原始)数据库或者命令行:
- 使用 GUI:
- 使用您选择的 GUI 工具打开数据库(例如
sqliteman
)。 - (为了
sqliteman
):- 光标从命令区域开始:粘贴下面的示例查询之一或编写您自己的查询。
- 选择整个命令 ( Ctrl+ A)。
- 执行命令:F9。
- 使用您选择的 GUI 工具打开数据库(例如
- 使用命令行:
sqlite3
您可以使用语法发出单个 SQL 查询sqlite3 --readonly "_<profile-dir>_/places.sqlite" "_<query>_"
--readonly
以只读方式打开数据库以防止意外更新。_<profile-dir>_
是您的 Firefox 配置文件目录。_<query>_
是您希望执行的 SQL 查询:请参阅下面的示例或编写您自己的查询。
- 或者,您可以使用语法访问数据库
sqlite3 --readonly "_<profile-dir>_/places.sqlite"
并发出多个命令。
- 使用 GUI:
合适的查询包括:
- 要查看所有带有时间戳的条目(以您的计算机/会话所设置的时区为准,精确到秒):
select datetime(last_visit_date/1000/1000,'unixepoch','localtime'), url, title from moz_places where last_visit_date not null
- 省略
,'localtime'
时间世界标准时间而不是您的时区。 - 省略
where last_visit_date not null
包含未注明日期的条目。 - 查看毫秒,使用
1000.0
代替1000
和strftime('%Y-%m-%d %H:%M:%f',
代替datetime(
,例如:select strftime('%Y-%m-%d %H:%M:%f',last_visit_date/1000.0/1000.0,'unixepoch','localtime'), url, title from moz_places where last_visit_date not null
- 到种类由时间最后访问,将最近的放在第一位,附加
order by last_visit_date desc
,例如(秒,毫秒):select datetime(last_visit_date/1000.0/1000.0,'unixepoch','localtime'), url, title from moz_places where last_visit_date not null order by last_visit_date desc
select strftime('%Y-%m-%d %H:%M:%f', last_visit_date/1000/1000,'unixepoch','localtime'), url, title from moz_places where last_visit_date not null order by last_visit_date desc
- 要限制为(例如) 100 行,请附加
limit 100
到命令,例如:select datetime(last_visit_date/1000.0/1000.0,'unixepoch','localtime'), url, title from moz_places where last_visit_date not null order by last_visit_date desc limit 100
- 注意:SQLite 不接受
limit to 100 rows
某些 SQL 方言中的语法。
- 限制在某一特定网站, 添加
and url like "
url 前缀%"
,例如(对于 DuckDuckGo 搜索引擎或原始问题中的网站):select datetime(last_visit_date/1000/1000,'unixepoch','localtime'), url, title from moz_places where last_visit_date not null and url like "https://duckduckgo.com%" order by last_visit_date desc
select datetime(last_visit_date/1000/1000,'unixepoch','localtime'), url, title from moz_places where last_visit_date not null and url like "https://internetgoschool.com%" order by last_visit_date desc