javascript - 如何创建表示 0001 年 1 月 1 日的 JavaScript 日期?
问题描述
注意:这不是重复的。我已经提到提到的另一个问题。我指出那里给出的建议是行不通的。
我正在尝试创建一个表示 0001 年 1 月 1 日(即公元 1 年开始)的 JavaScript 日期。
一开始我天真地以为这样就可以了:
const date = new Date(1, 0, 1);
...但这不起作用。这实际上产生了 1901 年 1 月 1 日。
建议的解决方案是构造日期,然后用于setUTCFullYear
设置所需的实际年份,如下所示:
const date = new Date(1, 0, 1);
date.setUTCFullYear(1);
好吧,我试过这样做,我最终得到的日期是:
Sun Dec 31 0000 23:58:45 GMT-0001(格林威治标准时间)
有关“演示”,请参阅此 StackBlitz。
我完全不理解这种行为。额外的 1 分 15 秒去哪儿了?
而且......我怎样才能真正得到我需要的日期,而不是诉诸于Date.parse()
?
解决方案
我会发布一个答案,因为每个人都喜欢评论:-)
事实证明,我创建的日期是“正确的”,但它以(erm ...)“令人惊讶”的方式显示。
所以:
const date = new Date(Date.UTC(1, 0, 1));
console.log(date);
1901-01-01T00:00:00.000Z
date.setUTCFullYear(1);
console.log(date);
0001-01-01T00:00:00.000Z
这就是我想要的,但我看到的是:
console.log(date.toString());
Sun Dec 31 0000 23:58:45 GMT-0001(格林威治标准时间)
(我仍然认为结果很奇怪)。我本来会更好:
console.log(date.toUTCString());
格林威治标准时间 0001 年 1 月 1 日星期一 00:00:00
谢谢大家!
推荐阅读
- python - 递归函数的语法问题,直到贷款余额达到 0
- java - JPA OneToOne 和 ManyToOne 与同一实体的关系
- ios - 当滚动超出工作表中的限制时,防止在 ScrollView 顶部的图像上方填充
- python - 如果 ES 服务器关闭,Elasticsearch-py 连接尝试会发生什么?
- javascript - 服务构建,“module.exports”不可修改?
- r - 如何在图表上拟合图例
- mongodb - 如何在nifi上设置mongodb的初始偏移量
- json - 获取json响应中的值
- javascript - 我怎样才能隐藏recaptcha溢出-y
- vue.js - Vue:如何使用 axios 将响应数据放入选择选项(vue-search-select)