2017-05-03 26 views
0

我想要一個日期之前拿到這個月的一天,這是我獲得一天的Javascript

var date = new Date(); 
var day = date.getDay(); 
var month = date.getMonth() + 1; 
var year = date.getFullYear(); 

var yesterday = new Date(date.getTime()); 
yesterday.setDate(date.getDate() - 3); 
var dayBefore = yesterday.getDay(); 
var MonthBefore = yesterday.getMonth() + 1; 

在日誌昨天我得到

Sun Apr 30 2017 16:24:33 GMT-0500 

不真的是昨天,因爲我試圖在本月前一天,但我得到了最後一個月,現在當我想要得到該日期的日期和月份,所以我使用getDate()和getMonth(),我得到本月正確

MonthBefore = yesterday.getMonth() + 1; 

這給了我4(4月),但與一天(30)我使用

dayBefore = yesterday.getDay(); 

這裏得到0是的jsfiddle:https://jsfiddle.net/4pf7bczv/

+1

這個問題有點不清楚。你只是想要得到昨天嗎?這是[問及在這裏回答](http://stackoverflow.com/q/5511323/215552)。但是,你的問題還有待在本月前一天說一些,這有點不清楚。你想要上個月的最後一天嗎?這已被問及許多次,[包括這裏](http://stackoverflow.com/q/9100676/215552)。 –

+0

這實際上是[*將當前日期*添加+1](http://stackoverflow.com/questions/9989382/add-1-to-current-date)的副本,只需更改該標誌即可。順便說一句,'昨天.setDate(date.getDate() - 3)'將日期設置爲3天前,而不是1. – RobG

回答

3

getDay返回星期的一天。 getDate返回月份的一天。

試試這個:

var date = new Date(); 
 
var day = date.getDate(); 
 
var month = date.getMonth() + 1; 
 
var year = date.getFullYear(); 
 

 
var yesterday = new Date(date.getTime()); 
 
yesterday.setDate(date.getDate() - 3); 
 
var dayBefore = yesterday.getDate(); 
 
var MonthBefore = yesterday.getMonth() + 1; 
 

 

 
console.log(date) 
 
console.log(yesterday) 
 
console.log(month + '/' + day + '/' + year + " 11:59 pm") 
 
console.log(MonthBefore + '/' + dayBefore + '/' + year + " 12:00 am") 
 

 
console.log(yesterday.getDate());

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

+0

謝謝這就是我正在尋找! –

+0

@RobG我實際上並沒有這樣做過(不確定它到底在哪裏)。我已經更新了它。謝謝! – AndyB