如何正确构建';日期';JavaScript中的对象?
我正在chrome控制台中运行下一个简单的JS代码:如何正确构建';日期';JavaScript中的对象?,javascript,Javascript,我正在chrome控制台中运行下一个简单的JS代码: var d = new Date(); console.log(d.__proto__); console.log(d.getYear()); console.log(d.getMonth()); console.log(d.getDay()); 并获得下一个奇怪的输出: Invalid Date 115 6 5 今天是2015年7月10日。那么为什么年、月和日是不正确的,为什么“\uuu proto\uuuu”的“无效日期”是不正确的呢
var d = new Date();
console.log(d.__proto__);
console.log(d.getYear());
console.log(d.getMonth());
console.log(d.getDay());
并获得下一个奇怪的输出:
Invalid Date
115
6
5
今天是2015年7月10日。那么为什么年、月和日是不正确的,为什么“\uuu proto\uuuu”的“无效日期”是不正确的呢?d.getFullYear(),month是以0为基础的,d.getDay()是一周中的一天,也是以0=周日为基础的,5是周五。您需要d.getDate()。- 原型本身是无效日期。您不应该使用原型日期,因为它是每个日期,没有。每个具体的日期对象都用正确的值覆盖字段
提供自1900年以来的年份。现在是1900年以来的第115年,这是正确的getYear
可能更有用getFullYear
提供一月为getMonth
的月份<代码>6表示7月。这也是正确的0
提供一周中的哪一天,周日为getDay
<代码>5周五,这也是正确的。您可能希望改为0
getDate
getDate()
而不是getDay()
和getFullYear()
。
至于月份,月份从0开始(一月是0),因此七月是6,而不是7。1)getYear
已过时,请改用getFullYear()
2) getMonth
返回0-11的值,因此显示的不是7(7-1)
3) getDay
返回0-6之间的值所有操作都是这样的,因为这就是
你提到的结果没有一个是错误的
:
getYear()
方法返回年份减去1900
因此,对于2015
,它返回2015-1900
,即115
。但是,getYear
不推荐使用,请改用。(这确实返回了2015
)
:
getMonth()
方法根据本地时间返回指定日期中的月份,作为一个基于零的值(其中零表示一年中的第一个月)
因此,一月是0
,二月是1
,等等
:
getDay()
方法根据本地时间返回指定日期的星期几,其中0
表示星期天
与月份基本相同,它们是零基的。
如果您想获得每月的日期,请使用
最后,原型,\uuuuuuuuuuuuuuuuuuuuuuu
确实是你不应该碰的东西。它只不过是一个Date
对象的骨架,其中Date
对象将具有它的正确值。使用d.getFullYear()
而不是d.getYear()
\uuuu proto\uuuu
是日期
构造函数的字符串化。不是dateMonth的是正确的,因为dateMonth从0到11Jan=0、Feb=1等。
注意,这是一个普通对象,不是日期实例。将其写入控制台调用,因为它没有时间值,所以使用NaN,因此结果是无效的日期。漂亮的复活节彩蛋你期望的d.\uuuu proto\uuuuuu
是什么?@RobG:注意,他们已经改变了。a) 浏览器还不会采用这个b)这是一个仓促的决定,是最终定稿前的最后一个决定之一,可能是一个错误。查找第一个勘误表和ES7:-)…此外,OP可能在查找getDate
,而不是getDay
@Bergi:我只是在您注释时添加了它:-)
var d = new Date();
console.log(d)
// Fri Jul 10 2015 12:40:09 GMT+0530 (India Standard Time)
console.log(d.getFullYear())
// 2015
console.log(d.getDay())
5 // 5 is the number of the day so it is correct as 0 represents Sunday
console.log(d.getDate())
// 10