【问题标题】:Error in the year representation of new Date() object JS新日期()对象JS的年份表示错误
【发布时间】:2023-04-02 11:29:01
【问题描述】:

所以我不知道我是否做了一些非常错误和愚蠢的事情,但这是我的问题。基本上我正在尝试了解本月第一天的工作日值。为此,我创建了一个 Date 对象,其中包含当前年份和月份,但日期为 1。但这里有一个有趣的情况

var x = new Date()
console.log(x.getYear())

这会将 115 打印到控制台。我想这就是他们决定代表 2000 年代的方式。所以如果我这样做了

var x = new Date();
var thismonth = new Date( x.getYear(), x.getMonth(), 1)
console.log(thismonth.getDay())

当它应该打印出 0 时会打印出 5。因为 2 月 1 日是星期日。另一方面 var x = 新日期(2015, 1 ,1 ) console.log(x.getDay()) 打印出 0。所以 JS 表示 2015, 115 但不能处理自己的表示?

这是我的浏览器出现问题还是一般情况>

谢谢

【问题讨论】:

  • 当你尝试获取 Year 时就会发生这种情况。许多语言中的 Date 实现也存在类似的问题......在 JavaScript 中......更好地使用 moment.js
  • -是的,我知道月份是从 0 开始的,这就是为什么我把 1 放在二月份。 - 我会检查 moment.js 谢谢人

标签: javascript


【解决方案1】:

您应该使用getFullYear() 而不是getYear()。这将返回您所期望的。

查看 API 以了解有关每种方法实际作用的更多信息。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

注意getYear()的描述是:“根据当地时间返回指定日期的年份(通常为2-3位)。改用getFullYear()。”(强调添加)

【讨论】:

    猜你喜欢
    • 2010-11-18
    • 1970-01-01
    • 1970-01-01
    • 2012-03-05
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多