首页 > 解决方案 > New Date() 给我错误的年份 - Windows 10 和 VS2015

问题描述

// javascript
var date1 = new Date('1/1/19');
var y = date1.getYear();
var fy = date1.getFullYear();

当我运行我得到的代码时(Windows 10、VS2015、MVC5、Jquery 3.3.1、Bootstrap 4.1:

y = '19'
fy = '1919'

根据规格,我应该得到:

y = "119"
fy = "2019"

我确实去了不同的网站,运行上面的代码,我得到了正确的结果,但不是来自我的计算机。

任何人都可以确认这个问题还是只是我的电脑问题?

标签: javascriptdatenew-operator

解决方案


你可以在这里找到一些信息。例如,你可以发现

上一世纪 - 一位和两位数的年份将被解释为 19xx:

此处提供了完整的日期输入格式规范。

简而言之,为了2019getFullYear()调用中获取,您应该初始化Date提供类似01/01/2019.

恕我直言,它很有用,为了避免时区出现问题和误解,采用简单、安全的策略:使用构造函数支持的ISO 8601 格式Date(String)引用日期。

对于高级用途,您可以通过诸如moment.js 之类的库与日期交互,该库在标准日期 API 之上提供了一个自定义、简单且可用的 API(如果是这种情况,还提供了用于显式处理时区的扩展)。


推荐阅读