使用方法
- 「日期」按 YYYY-MM-DD 填写,默认 2026-10-21;想补记昨天就改成昨天的日期,格式不对或填了日历上不存在的日期都会给出指明字段的中文提示。
- 「情绪等级」选 1~5:1 很低落、2 低落、3 一般、4 不错、5 很好。按当天整体状态选,不要按某个瞬间选,否则序列会被偶发事件带偏。
- 「标签」填一个短词概括当天的主因(可空,≤12 字),例如「加班」「聚会」「没睡好」;标签的作用是把同一类原因聚到一起。
- 「备注」写一句不超过 200 字的原因;在备注框里按 Ctrl 或 Cmd 加回车可直接提交,也可以点「添加记录」。
- 同一天重复提交时,页面先提示该日期已存在并复述原记录,再点一次才覆盖;导出用「导出记录 CSV」,复制用「复制记录 TSV」。
Mood记录能解决什么
情绪是连续变量,一天之内会上下波动好几次,靠记忆只能留下最极端的那一次——这正是「我记得上周很糟」这类判断不可靠的原因。本页把「今天整体怎么样」压成一个 1~5 的整数,再配一句不超过 200 字的原因,形成一条按天对齐的序列。序列一长,规律就自己浮出来:连续三周周末比工作日高 1 分,说明压力源在工作日;每次等级掉到 2 的那天备注里都写着睡眠不足,翻记录就能验证。这种横向比较是凭印象做不到的,因为记忆总是优先保留最近几天。
第二类问题是口径不统一:有的工具算「平均分」时把空记录当天当 0,有的按自然月算,还有的把最高最低只给数字不给日期,导致换一个工具历史数据就对不上。本页把四个统计量的算法写死并在页面里公开:平均值 = 全部记录等级之和 ÷ 记录数,最高与最低同时给出等级与发生日期,连续记录天数 = 从最新一条往前逐日回溯、日期不间断的天数。口径固定,往回翻三年的记录也仍然可比。
第三类是隐私。多数心情类应用要注册账号、把记录传到云端,等于把情绪状态交给别人保管。本页没有任何后端提交逻辑:所有记录只写进本机浏览器的 localStorage(键名 moodlog_v1),数据只存本机浏览器,不上传、无账号、换设备或清除浏览器缓存即丢失。想留底就点「导出记录 CSV」,文件带 BOM,Excel 打开中文不乱码。
本页不做的事也说清楚:不做心理评估或诊断,不判断你的状态是否正常,不做跨设备同步,也不做定时提醒——提醒需要常驻通知能力,请配合倒计时器一类的工具使用。
原理与变量
等级是序数,不是物理量。1 到 5 只保证顺序(5 比 4 好),不保证间距相等:从 3 到 4 和从 4 到 5 的心理距离未必一样。所以平均值只用于看长时段的重心偏移,不要拿 4.00 去和别人的 4.00 比——两台设备的刻度本来就不同。
平均值与极值的算法。平均值 = Σ 等级 ÷ 记录数,保留两位小数,四舍五入;示例四条记录为 4、3、5、4,和为 16,16 ÷ 4 = 4.00。最高与最低在遍历时同时记下发生日期,若有多天并列同一等级,取遍历中最早遇到的那天(数据按日期升序遍历,因此是最早的那天)。
连续记录天数。把全部日期放进一个集合,从最新一条的日期开始往前一天一天减,只要减完的日期仍在集合里就继续计数,遇到缺口就停。示例的四条 10-18 到 10-21 连续,得 4 天;若中间少了 10-19,则只数到 10-21、10-20,得 2 天。回溯用 Date 逐日递减,跨月跨年由日历自己处理,不存在「3 月 1 日减一天等于 3 月 0 日」这类错误。
存储与键名。记录序列化成数组写入 localStorage 的 moodlog_v1,一条约占 60 字节,几千条也远不到浏览器每源 5MB 的配额。同一浏览器的多个标签页共享同一份数据,最后写入的覆盖之前写入的;隐私模式或存储配额耗尽时写入会抛异常,页面捕获后给出「写入失败」的具体提示,而不是假装保存成功。
趋势条的高度。条高 = 等级 ÷ 5,换算成百分比后写进内联样式:等级 4 得 80%,等级 5 得 100%,等级 1 得 20%。趋势区只画最近 30 条,更早的记录仍完整保存在记录表和导出的 CSV 里。条高用 CSS 高度实现,不依赖任何图表库,关掉JavaScript 之前服务端直出的四条柱子也照样看得见。
完整示例
默认示例是 4 条连续记录:2026-10-18 等级 4(标签平静,备注散步 30 分钟)、2026-10-19 等级 3(疲惫,加班到 23 点)、2026-10-20 等级 5(开心,朋友聚会)、2026-10-21 等级 4(专注,写完周报)。统计区因此显示:记录数 4 条、平均情绪 4.00、最高 5(2026-10-20)、最低 3(2026-10-19)、连续记录 4 天;结果区显示最新一条 2026-10-21 等级 4(不错)标签专注备注写完周报。
把等级改成 2、备注改成「连续加班第三天」再点两次「添加记录」覆盖 2026-10-21,平均值从 4.00 变成 (4+3+5+2) ÷ 4 = 3.50,最低变成 2(2026-10-21),趋势条最后一根从 80% 降到 40%。这一组数字就是本地实时记录的样子:改一个字段,统计、趋势、表格三处同步更新。
对照表
下表给出 16 组常见标签的建议等级与备注写法,供首次记录时参照,默认显示 12 行,点「加载更多」展开其余 4 行。等级一列只是建议值,实际请按你当天的主观感受选。
| 标签 | 建议等级 | 备注写法示例 | 情绪指向 |
|---|---|---|---|
| 平静 | 4 | 散步 30 分钟 | 轻度放松 |
| 疲惫 | 3 | 加班到 23 点 | 体力透支 |
| 开心 | 5 | 朋友聚会 | 社交满足 |
| 专注 | 4 | 写完周报 | 心流状态 |
| 焦虑 | 2 | 截止日期前三天 | 待办堆积 |
| 失落 | 2 | 方案被否掉了 | 期待落空 |
| 兴奋 | 5 | 收到录用通知 | 强正向事件 |
| 放松 | 4 | 泡澡 20 分钟 | 身体舒缓 |
| 烦躁 | 2 | 通勤堵了一小时 | 情绪外泄 |
| 感恩 | 5 | 同事帮忙兜底 | 关系支持 |
| 困倦 | 3 | 只睡了 5 小时 | 睡眠不足 |
| 充实 | 4 | 完成 3 项待办 | 效能感 |
| 期待 | 4 | 周末行程定好了 | 未来导向 |
| 内疚 | 2 | 拖了别人的进度 | 自责 |
| 麻木 | 1 | 什么都不想做 | 低动力 |
| 安心 | 4 | 账目核对完毕 | 秩序感 |
结果边界与舍入
舍入。平均值保留两位小数,用四舍五入:三条记录为 5、4、4 时,13 ÷ 3 = 4.3333…,显示 4.33。占比类数字同理保留一位小数。等级本身是整数,不参与舍入。
输入校验。日期不是 YYYY-MM-DD 格式、填了 2026-02-30 这类日历上不存在的日期、等级不是 1~5、标签超过 12 字、备注超过 200 字,都会给出指出字段名与允许范围的中文提示,同时结果区显示破折号 —,不会静默记一条脏数据。
覆盖与清空。同一天重复提交需要点两次:第一次复述原记录并提示「再点一次将覆盖」,第二次才真正写入。「清空本机记录」同样要点两次,第一次把按钮文案换成「再点一次确认清空」并在提示区写明不可恢复、建议先导出——本机删除没有回收站。
存储边界。清除浏览器数据、更换浏览器或设备、隐私模式下关闭窗口,localStorage 都可能被清空,这是纯本地方案固有的代价。导出的 CSV 是唯一的异地备份途径;导出文件在开头写入 UTF-8 的 BOM(字节 EF BB BF),TSV 复制则不加,因为它是直接粘进表格软件的剪贴板文本,不需要文件头标记。
常见问题
记录会上传到服务器吗?
不会。数据只存在本机浏览器的 localStorage(键名 moodlog_v1),页面没有后端提交逻辑,不上传、无账号、无第三方统计;换设备或清除缓存即丢失,重要记录请先导出 CSV。
为什么同一天要点两次才能覆盖?
第一次点击只复述原记录并提示「再点一次将覆盖」,第二次才写入。情绪记录是主观数据,误覆盖后无法从记忆里精确还原,所以这里故意多一步确认。
平均值 4.00 是什么意思,小数点后两位有意义吗?
它是全部记录等级之和除以记录数,保留两位小数。等级是主观序数,两位小数只是为了看重心移动的幅度,不要把它当成精确测量值。
连续记录天数为什么不是「记录条数」?
连续天数要求日期一天接一天。10-18 到 10-21 四条连续得 4 天;若中间缺 10-19,剩下三条只能数出 2 天——条数是 3,连续天数却是 2,两者衡量的东西不同。
趋势条只画 30 天,更早的记录会丢吗?
不会。趋势区为了看得清只画最近 30 条,记录表与导出的 CSV 里是全部历史;记录超过 12 行时点「加载更多」展开其余行。
导出的 CSV 用 Excel 打开是乱码怎么办?
本页导出已在文件头写入 UTF-8 的 BOM,正常情况下 Excel 双击打开不乱码。若用其他工具转存后乱码,多半是转存时丢掉了 BOM,用「UTF-8 with BOM」重新保存即可。
隐私模式或无痕窗口能用吗?
能打开也能记录,但 localStorage 可能被禁用或随窗口关闭清空,页面会在写入失败时明确提示「本次记录仅在当前页面有效」。长期记录请用普通窗口。
它能代替心理咨询吗?
不能。它只是自我观察的本地日志,帮你看清规律,不做诊断也不给治疗建议。如果连续多周等级偏低并影响到日常生活,请及时联系专业心理咨询师或医生。