javascript - 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"
我确实去了不同的网站,运行上面的代码,我得到了正确的结果,但不是来自我的计算机。
任何人都可以确认这个问题还是只是我的电脑问题?
解决方案
你可以在这里找到一些信息。例如,你可以发现
上一世纪 - 一位和两位数的年份将被解释为 19xx:
此处提供了完整的日期输入格式规范。
简而言之,为了2019
从getFullYear()
调用中获取,您应该初始化Date
提供类似01/01/2019
.
恕我直言,它很有用,为了避免时区出现问题和误解,采用简单、安全的策略:使用构造函数支持的ISO 8601 格式Date(String)
引用日期。
对于高级用途,您可以通过诸如moment.js 之类的库与日期交互,该库在标准日期 API 之上提供了一个自定义、简单且可用的 API(如果是这种情况,还提供了用于显式处理时区的扩展)。
推荐阅读
- python - 如何在 python selenium 中获取每个 window_handles 项目的标题
- ios - 在 Swift 5 中更改 UIView 宽度
- typescript - TypeScript:使用扩展运算符添加到对象的 getter 返回未定义。功能工作正常
- python-3.x - Docker SDK:查找容器的 IP 地址?
- flutter - Flutter 启动命令无法识别诸如风味之类的参数
- ios - How do I add gesture to AVPlayerController's subtitles?
- python - form.is_valid() 没有按预期工作 django
- java - 尝试进行mergeSort,并且索引超出范围
- c# - 使用 c# 以编程方式获取 iOS 模拟器的 UDID
- c++ - 代码没有在 MacOS 上用 cmake 编译?(SFML)