添加天数后,Javascript getMonth返回上个月

时间:2016-04-06 14:06:00

标签: javascript date datetime

我在今天的日期添加了几天,并以毫秒为单位获取时间戳。

Thu Apr 07 2016 18:34:33 GMT+0500 (PKT)

第一个控制台返回result.getMonth(),但稍后3-7-2016总是返回上个月的值。所以第二个控制台总是返回Mon Mar 07 2016 00:00:00 GMT+0500 (PKT),第三个控制台总是返回00:00:00

我的最终目标是从04-06-2016获取接下来几天的毫秒数。就像今天一样00:00:00。我希望得到未来几天的毫秒时间戳。时间戳应从该日期的开始计算,即>>> d = '20150407' >>> l = [ ... '20150406,34.4800,34.8100,34.2300,34.4200,21480500', ... '20160402,34.1,32.8100,33.2300,31.01,22282510', ... '20150407,34.5400,34.8900,34.5100,34.6300,14331200', ... '20120101,2.540,14.8201,32.00,30.1311,12331230' ... ] >>> index = next(i for i, item in enumerate(l) if item.startswith(d)) >>> l[:index] ['20150406,34.4800,34.8100,34.2300,34.4200,21480500', '20160402,34.1,32.8100,33.2300,31.01,22282510'] >>> l[index:] ['20150407,34.5400,34.8900,34.5100,34.6300,14331200', '20120101,2.540,14.8201,32.00,30.1311,12331230']

任何人都可以让我知道我做错了什么吗?

3 个答案:

答案 0 :(得分:2)

基于Data.getMonth的月份(因此1月份为0,feb为1等)。

因此,如果您想使用月份值来创建新日期,只需添加一个。

答案 1 :(得分:1)

getMonth基于零,所以0 = 1月,1 = 2月,3 = 4月等。所以console.log的输出是正确的

答案 2 :(得分:1)

您需要在getMonth()函数中添加1。

示例:

console.log((result.getMonth() + 1)+'-'+result.getDate()+'-'+result.getFullYear());

将返回正确的月份/日期。这是因为getMonth函数返回的值为0 - 11(1月为0,12月为11)

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