gpt4 book ai didi

javascript - 如何格式化 BC 日期(如 "-700-01-01")?

转载 作者:搜寻专家 更新时间:2023-11-01 04:25:03 25 4
gpt4 key购买 nike

如何使用 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 特有的问题;如果您尝试使用正在使用的字符串初始化 Date() 对象,也会发生同样的情况。如果您首先将它创建为 Date() 对象并使用 setYear() 手动分配年份,它会接受 -700 的日期:

var date = new Date();

date.setYear(-700);

moment(date).year();
> -700

但是作为Niels Keurentjes has pointed out , 这么远的日期计算变得相当复杂,可能根本不可靠。

如果你想要“-700-01-01”你可以分别配置年月日:

date.setYear(-700);
date.setMonth(0);
date.setDate(1);

console.log(date);
> Fri Jan 01 -700 11:53:57 GMT+0000 (GMT Standard Time)

至于公元前 700 年第 1 个月的第 1 天是否真的是星期五...您必须自己查一下。

关于javascript - 如何格式化 BC 日期(如 "-700-01-01")?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25846123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com