JavaScript中使用getMonth()和getYear()的日期格式不正确

时间:2014-11-06 16:11:48

标签: javascript

我无法理解为什么Javascript中的日期出错了。例如......

$scope.campaign.date_start = new Date(19/11/2014);
Wed Nov 19 2014 00:00:00 GMT+0000 (GMT) - correct
$scope.campaign.date_start.getDay() = 19 - correct

到目前为止一直很好,但是获得月份和年份会给我不正确的价值......

$scope.campaign.date_start.getMonth() = 10 - incorrect should be 11
$scope.campaign.date_start.getYear() = 114 incorrect should be 2014

我在这里错了什么?

4 个答案:

答案 0 :(得分:4)

getMonth基于0,因此您需要+1来获取当月的数量。

getYear已被弃用,并且可能在将来某个时候中断,它(通常)会返回自1900年以来的年数。使用的正确方法是getFullYear

答案 1 :(得分:3)

JavaScript getMonth()将始终返回实际month-1。对于这一年,您需要使用getFullYear()来获得4位数年份

答案 2 :(得分:1)

Date.getMonth()为0-base(1月为0月)。

Date.getYear()已被弃用,自1900年以来已有数年(因此为114年)。

http://www.w3schools.com/jsref/jsref_obj_date.asp

答案 3 :(得分:1)

getMonth()从零开始。所以你需要getMonth()+1

getYear()不符合Y2K,因此创建了一个新函数getFullYear()以返回4位数年份。