【发布时间】:2023-04-06 22:25:02
【问题描述】:
如何使用 Moment.js 格式化 ISO 日期 BC?
moment("-700-01-01").year(); // 700 (WRONG)
moment("-0700-01-01").year(); // 700 (WRONG)
moment("-000700-01-01").year(); // -700 (RIGHT)
由于某种原因,使用 6 位数字的年份表示法有效。这是“正确”的方式吗?为什么 "-700-01-01" 这样的符号不起作用?
【问题讨论】:
-
作为一般规则,你不应该想要这个。根据定义,很久以前的日期计算将非常混乱和错误,因为当时的公历本身根本没有标准化。简而言之:根据 Moment.js 的日历逻辑,从来没有“1 月 1 日”,在公元前 700 年,唯一偶尔使用的日历是 Calendar of Numa,它每年计算 355 天。直到公元 1752 年,公历才远程可靠。
-
实际这样做有几个原因 - 可能用户需要在“通常” javascript 工具制作的时间线上呈现一些数据,因此这个请求是完全有效的。没有人怀疑日期 BC 是不可靠的,当涉及到一周中的某天左右时,但仍然需要有办法做到这一点。世界并非始于 1.1.1970 ... :)
标签: javascript date momentjs