太阳钟

查看原文 HN 讨论

文章摘要

Sun Clock(sunclock.net)是一个纯前端的小网站,作者在 HN 上的账号是 perilunar。它是一个24 小时制的表盘,在盘面上直接画出太阳当前的位置,并根据你所在位置标出日出、太阳正午(solar noon)、日落、黄金时刻(golden hour)和各阶段暮光(twilight)的时间;同时还显示月亮的位置和月相,以及月升月落时间。除了时钟主视图,站点还有一个「Sun Calendar」年度日历视图。

作者在 About 里给出的工程指标很克制:页面重量约 100 KB,没有广告也没有追踪(只有一个来自 Simple Analytics 的极小统计脚本),需要 JavaScript 才能运行。隐私说明写得很直接:只收集聚合的用户统计;你的位置和设置存在浏览器本地,不会发到服务器;不保存也不发送 cookie。项目使用免费,不含广告,2026 年 6 月 26 日给代码加上了 MIT 许可。太阳和月亮的天文计算基于 SunCalc 这个 JS 库。

站点最有意思的一节是关于旋转方向的说明,也是作者花了篇幅解释的设计决策。在北半球,太阳在天空中的移动是顺时针方向的——作者顺带补了个词源:在钟表出现之前,顺时针叫 “sunwise”(随日),逆时针叫 “widdershins”,意思是「逆着走的方向」。但在南半球,太阳的移动是逆时针的,所以 Sun Clock 会根据你的纬度自动设定旋转方向:如果你在南半球,时钟就会「倒着走」(当然设置里可以改回来)。作者的理念是:理想状态下,无论你在哪个半球,时钟都应该和太阳同向转动;如果你面朝南,设成顺时针,面朝北则设逆时针,你要的是让盘面上的日出落在东侧。他还留了一个彩蛋式的提示:如果你朝对的方向、把屏幕倾斜到对的角度,时针会真的跟着太阳在天空中的运动走——具体怎么做「留作读者的练习」,但你要让屏幕落在黄道面内,并让太阳正午朝「上」。

使用提示部分说明:点击或悬停在各个色块上可以看到它们的起止时间,月亮、时针和中心圆点也都可以点/悬停。

更新日志本身也是一份小型产品史:2023-10-20 变成 PWA(可以装到设备主屏并离线使用);2024-02-13 加入年度日历;2024-05-23 加了在盘面上显示奇数刻度的选项,并让「使用 12 小时制」选项也应用到盘面数字;2026-01-01 修掉了新版 Safari 上月亮图标显示错误的 bug;2026-03-12 加了「秒针跳动」选项(默认仍是扫秒);2026-06-26 加上 MIT 许可。

HN 评论精华

这条帖子拿到 288 分、93 个节点。这类交互式小站的讨论有个典型走向:正文本来就少,而评论区变成了一场「我也做了一个」的大集市——至少十几位读者贴出了自己写的太阳钟/日照可视化项目。真正有信息量的部分来自两处:作者 perilunar 亲自下场回答边缘情况,以及 SunCalc 库的作者也现身了。另外还有两条意外有趣的支线:对「不肯交出定位」的普遍抗拒,以及一场关于「你脑子里的一年是顺时针还是逆时针」的自发民意调查。