剩余时间计算器
结果
还没到
剩余天数
- 剩余周数
- 12.9 周
- 剩余整月数
- 2
- 剩余周末天数
- 25 天
- 目标日期是星期几
- 星期五
- 起算日期
- 2026年10月3日
距离某一天还剩多久?这个剩余时间计算器同时用天、周、整月和周末天数来回答,并且告诉你目标日期是星期几。今天被当作 UTC 的一个完整日历日来读,而不是当作一个时刻,所以早上打开和半夜打开得到的数字一样,夏令时切换时也不会跳动。目标日期已经过去也不算错:同一组数字带负号返回。
公式
剩余天数 = 目标日期减今天,两端都按完整日历日计算;周、月、周末天数由同一段间隔导出,并共享它的正负号
- targetDate
- 你要倒数到的那个日期;它可以在过去,那就是往回数
- daysRemaining
- 带符号的天数差:之前为正,当天为零,之后为负
- weeksRemaining
- 同一段距离除以七,保留一位小数
- monthsRemaining
- 这段间隔里的整月数;351 天是 11 个月,因为第十二个月还差 14 天
- weekendsRemaining
- 间隔里有多少个星期六和星期日;按工作日通勤的人可能只用到一半
- fromDate
- 倒数的起算日,报出来是为了让这笔账可以自己核对
用在你要对着某个截止日做安排的场合:签证到期、上线、交接、假期、订阅续费。天是你行动的依据,周是你排期的单位,月是期限写在纸上的样子,周末天数则是你真正能支配的部分。它会把起算日印在数字旁边,因为一个看不出「今天按哪天算」的倒计时是无法核对的。它给不了小时和分钟——锚点是一个完整的日,小时数只会是天数乘以 24。
算例
2027 年 1 月 1 日,从 2026 年 1 月 15 日起算
- 2026 年 1 月 15 日到 2027 年 1 月 15 日是一整年,而 2026 不是闰年,所以这段是 365 天
- 目标是 2027 年 1 月 1 日,比 1 月 15 日早 14 天——365 减 14 得到 351 天
- 351 除以七是 50.14,保留一位小数是 50.1 周
- 十一个整月走到 2026 年 12 月 15 日;第十二个月还需要 14 天
- 这些天里有 100 天是周六或周日,而 2027 年 1 月 1 日是星期五
这里月数和天数故意不一致:11 个月和 351 天说的是同一段间隔,两个都不错。看期限读月,看截止日读天。
明天——2026 年 1 月 16 日
- 就在一天之后,所以剩余天数读作 1
- 七分之一周舍入后是 0.1 周
- 整月数为 0,因为从 1 月 16 日往回推并没有走完一个从月首开始的整月
- 这两天都不是周末:2026 年 1 月 15 日是星期四,1 月 16 日是星期五
- 目标日期的星期序号是 5,从此星期日为 0 数起
只差一天却读成零个月不是 bug——整月要走完才算。这也正是天数被放在最大位置上的原因。
2025 年 12 月 25 日,已经过去
- 2025 年 12 月 25 日在 2026 年 1 月 15 日之前 21 天,所以剩余天数是 -21
- -21 除以七正好是 -3 周
- 这 21 天里有六天是周六或周日:12 月 27、28 日,1 月 3、4 日,1 月 10、11 日
- 于是周末天数是 -6——符号贯穿每一个派生数字,不只是天数那一个
- 整月数是 0:12 月 25 日到 1 月 15 日是 21 天,而 12 月 25 日开启的那个月还没走完
过去的日期返回数字而不是报错,四个数字共用一个符号。取绝对值的实现会让昨天和明天看起来一模一样。
局限
今天取的是 UTC 的日历日,不是你本地的日历日。对世界上大部分地方这看不出差别,但在 UTC+12 以东,本地午夜之后的头几个小时里 UTC 日期还停在前一天,倒计时可能比墙上的日历多读一天。锚点无论如何都是一个整日,小时和分钟不在范围内。周末只算周六和周日,这在把周五周六当周末的地区是错的。月数只数整月,所以只差几天的目标会读成零个月,尽管它几乎够一个月;另外倒数以今天为锚,页面在浏览器里加载时会重新计算,而不是冻在站点构建的那一刻。
常见问题
- 距离 2027 年 1 月 1 日还有多少天?
- 从 2026 年 1 月 15 日算起是 351 天,也就是 50.1 周或者 11 个整月。2026 年 1 月 15 日到 2027 年 1 月 15 日是 365 天,而 1 月 1 日比它早 14 天。想自己核对的话,看页面有没有把起算日——2026 年 1 月 15 日——印在数字旁边。
- 为什么手机上的天数和电脑上不一样?
- 因为页面加载之后会用你浏览器里的时钟重新算一遍,而你最先看到的那一份是站点构建时算出来的。今天按 UTC 整日读取,所以在 UTC+12 及更东的地区,本地午夜之后的头几个小时里两者也会差一天。
- 可以对着过去的日期往回数吗?
- 可以,而且不需要切换开关。填入一个已经过去的日期,每个数字都会变成负数:2025 年 12 月 25 日从 2026 年 1 月 15 日算起是 -21 天。天、周和周末天数共用同一个符号,所以过去的日期不会被误认成未来。
- 周末天数这个数字有什么用?
- 因为周末才是大多数人真正能支配的时间。351 天里有 100 天是周末,所以一个按天数看很宽裕的截止日,如果事情只能放在周六周日做,就紧得多。目标日期挪一天,这个数字会变 0 或 1,所以日期一改就值得重看一遍。
- 它与日期计算器有什么区别?
- 这一页从今天算起,今天不需要你填,而且除了天数还给周数、整月数和周末天数。日期计算器要你自己填两端,适合间隔固定、与「现在」无关的场合——合同期限、项目窗口,或者你要拿来互相比较的两个日期。
参考资料
- 精准星空下的每一秒 — 中国科学院(转载新华网)
- RFC 3339: Date and Time on the Internet: Timestamps — IETF