体验槽点:知乎评论区混乱的时间顺序

对啊,所以想尽办法把用户往手机客户端赶,吃相可见一斑。

断人财路啊,他们能不拼命? :rofl:

另一方面也是贪得无厌吧?

Hi 似乎失效了?

我也发现了,有时候当「课代表」分享笔记不好用,还得再发一份评论版的

试试:

// ==UserScript==
// @name         知乎评论时间精确到秒
// @namespace    http://tampermonkey.net/
// @version      0.3
// @description  try to take over the world!
// @author       You
// @match        https://www.zhihu.com/*
// @match        https://zhuanlan.zhihu.com/*
// @icon         http://zhihu.com/favicon.ico
// @grant       GM_addStyle
// @run-at document-start
// @require https://scriptcat.org/lib/637/1.3.3/ajaxHooker.js

// ==/UserScript==


(function () {
	'use strict';
	function timestampToTime(timestamp) {
		const milliseconds = timestamp * 1000;
		const date = new Date(milliseconds);
		const year = date.getFullYear();
		const month = addZero(date.getMonth() + 1);
		const day = addZero(date.getDate());
		const hour = addZero(date.getHours());
		const minute = addZero(date.getMinutes());
		const second = addZero(date.getSeconds());

		return `${ year }-${ month }-${ day } ${ hour }:${ minute }:${ second }`;
	}

	function addZero(num) {
		return num < 10 ? `0${ num }` : `${ num }`;
	}

	ajaxHooker.hook(request => {
		if (request.url.includes("https://www.zhihu.com/api/v4/comment_v5/comment/") || request.url.includes("https://www.zhihu.com/api/v4/comment_v5/answers/") || request.url.includes("https://www.zhihu.com/api/v4/comment_v5/articles/")) {

			request.response = res => {
				// console.log('\n== ↓ ↓ ↓ ↓ ↓ == \n', res)

				if (res.json.data) {

					res.json.data.forEach(item => {
						// console.log(timestampToTime(item.created_time));
						item.content =  item.content +   '<span class="commentTime">' + timestampToTime(item.created_time) + '</span>'
						if (item.child_comments.length >= 1) {
							item.child_comments.forEach(child => {
								child.content =   child.content  + '<span class="commentTime">' + timestampToTime(child.created_time) + '</<span>'
							});
						}
					});
					GM_addStyle(`
					.CommentContent {
							position: relative;
							overflow: visible;
						}

						/* 	精确时间 */
						.commentTime {
							position: absolute;
							left: 0;
							bottom: -25px;
							color: #999;
						}

						.css-140jo2 {
							position: relative;
						}

						/* 原时间	 */
						.css-12cl38p,
						.css-12cl38p + span,
						.css-nm6sok + span {
							display: none;
						}

						/* ip属地	 */
						.css-8hxn0r .css-nm6sok {
							position: absolute;
							left: 160px;
							top: 3px;
						}
						/* 热评	 */
						.css-8hxn0r .css-33kuns {
							position: absolute;
							left: 240px;
							top: 3px;
						}
						/*  作者置顶	 */
						.css-1o87v1m{
						    position: absolute;
  						    top: 22px;
   						    left: -4px;
						}
					`);
				}

			};
		}

	});
})();
1 Like

不打算发布到 Greasy Fork 嘛

能把显示提问题的精确时间的功能加入吗?

谨慎请教,这应该怎么加入浏览器啊?

https://greasyfork.org/zh-CN

:point_down:
第一步:安装一个用户脚本管理器

应该不会 :joy:

试试这个

哇,非常感谢,,原来鼎鼎有名的油猴,,以前稀里糊涂的装过
非常感谢,,真是宝藏无限啊,,,感激!

可以了,不错,每个回答下面的评论是不是就是无法显示准确时间啊?

禁用脚本的情况下,问答页面默认显示的就是准确的发布时间/编辑时间

开启脚本后,会同时显示发布时间、编辑时间,在脚本设置面板中也可以开启置顶时间

1 Like

多谢,您装的是Tampermonkey吗?直觉感觉这个似乎比油猴做的更专业易用一点,以前装油猴都不记得因为什么了,不是看到这个贴子甚至都忘记了!

哈哈,此刻好像是已经正常了,难道这么慢吗?还是又是那个货干的 :face_exhaling:
“问题”、“直达问题”、“文章”、“创建时间”、“最后编辑”。。。
哇,果然清爽多了…

但是手机端特供了“来自其他问题的回答”这种狗屎设计

真的是被人启发,原来我有这种需求……非常感谢,知乎体验提升一大截

2023-12-10知乎修改了一些标签的"class",导致文字重叠在一起了。

我改了一下脚本,(基本)解决了文字重叠的问题。

// ==UserScript==
// @name         知乎评论时间精确到秒
// @namespace    http://tampermonkey.net/
// @version      0.4
// @description  try to take over the world!
// @author       You
// @match        https://www.zhihu.com/*
// @match        https://zhuanlan.zhihu.com/*
// @icon         http://zhihu.com/favicon.ico
// @grant       GM_addStyle
// @run-at document-start
// @require https://scriptcat.org/lib/637/1.3.3/ajaxHooker.js

// ==/UserScript==


(function () {
	'use strict';
	function timestampToTime(timestamp) {
		const milliseconds = timestamp * 1000;
		const date = new Date(milliseconds);
		const year = date.getFullYear();
		const month = addZero(date.getMonth() + 1);
		const day = addZero(date.getDate());
		const hour = addZero(date.getHours());
		const minute = addZero(date.getMinutes());
		const second = addZero(date.getSeconds());

		return `${ year }-${ month }-${ day } ${ hour }:${ minute }:${ second }`;
	}

	function addZero(num) {
		return num < 10 ? `0${ num }` : `${ num }`;
	}

	ajaxHooker.hook(request => {
		if (request.url.includes("https://www.zhihu.com/api/v4/comment_v5/comment/") || request.url.includes("https://www.zhihu.com/api/v4/comment_v5/answers/") || request.url.includes("https://www.zhihu.com/api/v4/comment_v5/articles/")) {

			request.response = res => {
				// console.log('\n== ↓ ↓ ↓ ↓ ↓ == \n', res)

				if (res.json.data) {

					res.json.data.forEach(item => {
						// console.log(timestampToTime(item.created_time));
						item.content =  item.content +   '<span class="commentTime">' + timestampToTime(item.created_time) + '</span>'
						if (item.child_comments.length >= 1) {
							item.child_comments.forEach(child => {
								child.content =   child.content  + '<span class="commentTime">' + timestampToTime(child.created_time) + '</<span>'
							});
						}
					});
					GM_addStyle(`
					.CommentContent {
							position: relative;
							overflow: visible;
						}

						/* 	精确时间 */
						.commentTime {
							position: absolute;
							left: 0;
							bottom: -25px;
							color: #999;
						}

						.css-140jo2 {
							position: relative;
						}

						/* 原时间	 */
						.css-12cl38p,
						.css-12cl38p + span,
						.css-nm6sok + span {
							display: none;
						}

						/* ip属地	 */
						span.css-ntkn7q {
    position: absolute;
    left: 160px;
    top: 3px;
}

						/* 热评	 */
                        span.css-1kq4cxq {
							position: absolute;
							left: 240px;
							top: 3px;
						}
						/*  作者置顶	 */
						.css-1o87v1m{
						    position: absolute;
  						    top: 22px;
   						    left: -4px;
						}
					`);
				}

			};
		}

	});
})();
2 Likes

这方面做到极致的是小红书。
没有时间排序,也没有热度排序,更没有楼层显示
个人觉得这样方便操作舆论,水军评论放前面,不利评论删掉什么的,用户感知度很低