2017-07-18 37 views
3

如何正確獲得給定日期的前3天,如果我有一個格式,如07/21/2017 8:30 AM,這是因爲我使用Eonasdan DateTime Picker的格式。但是當我試圖用3天減去它時,我得到了2017年7月21日08:24:14 GMT + 0800(中國標準時間)作爲我的價值,但我期望的輸出應該是相同的格式,如07/21/2017 8:30 AM。即使我遵循我的格式,我怎樣才能獲得價值?獲取產品給定日期

我的代碼:

var d =new Date('07/21/2017 8:30 AM'); 
 
var yesterday = new Date(d.getTime() - (96*60*60)); 
 
alert(yesterday);

+6

我強烈建議考慮看看moment.js,它會讓你的生活變得更容易時,處理JS中的日期。 – Robert

+1

可能的重複[從JavaScript日期減去天](https://stackoverflow.com/questions/1296358/subtract-days-from-a-date-in-javascript) – Champ

+0

我覺得我的問題有點相同但完全不同,問題在https://stackoverflow.com/questions/1296358/subtract-days-from-a-date-in-javascript只是要求減去當前日期成某種價值沒有任何格式,如果我的問題有一種格式。因此,我可以說我的問題是獨特的,不一樣的或不重複的。@Champ – Ailyn

回答

1

function formatDate(d) { 
 
      month = '' + (d.getMonth() + 1), 
 
      day = '' + d.getDate(), 
 
      year = d.getFullYear(); 
 
    
 
     if (month.length < 2) month = '0' + month; 
 
     if (day.length < 2) day = '0' + day; 
 
    
 
     date = [month, day, year].join('/'); 
 
     var hours = d.getHours(); 
 
     var minutes = d.getMinutes(); 
 
     var ampm = hours >= 12 ? 'PM' : 'AM'; 
 
     hours = hours % 12; 
 
     hours = hours ? hours : 12; // the hour '0' should be '12' 
 
     minutes = minutes < 10 ? '0'+minutes : minutes; 
 
     var strTime = hours + ':' + minutes + ' ' + ampm; 
 
     return date+" "+strTime; 
 
} 
 
var d =new Date('07/21/2017 8:30 AM'); 
 
d.setDate(d.getDate() - 3); 
 
var yesterday = formatDate(d); 
 
alert(yesterday);

日期這應該工作

+0

謝謝這是我正在尋找的人。感謝您的幫助@Kishor V – Ailyn

+0

歡迎:D –

1

這應該做的伎倆:

var date = new Date('07/21/2017 8:30 AM'); // get 
 
date.setDate(date.getDate() - 3); 
 
console.log(date.toString());

基本上,它採用當前一天getDate()並使用setDate()將時間更新爲過去3天。

如果你想格式化你的日期,像@羅伯特說的看看moment.js。你可以使用類似:

moment().format('MM/DD/YYYY, h:mm:ss a'); 

更多信息的Datehere和力矩文件here

0

嘗試使用此

var d = new Date(); 
var d =new Date('07/21/2017 8:30 AM'); 
var yesterday = d; 
yesterday.setDate(d.getDate()-3); 
alert(yesterday); 
+0

這正是我在發帖後兩分鐘所說的... – brennanenanen

+0

是的,對不起,我跟他人比較慢回答他。當我點擊他的問題時沒有發佈回答 –

0

你可以簡單地減去天從日期如d.getDate() - 3

var d =new Date('07/21/2017 8:30 AM'); 
 
d.setDate(d.getDate() - 3); 
 
alert(d)

0

您需要使用setDate功能上Date類改變日期部分可變

var d =new Date('07/21/2017 8:30 AM'); 
 
    d.setDate(d.getDate() - 3); 
 
    console.debug(d);

+0

'setDate()'不是一個API,它是一個內置的類方法。 – brennanenanen

+0

@brennanenanen這聽起來是否正確 - 「日期類的setDate API」?我知道給你一個建議的方法肯定是正確的。 – RBT

+0

API代表應用程序編程接口。 API用於在應用程序之間進行對話,而不是像js這樣的內置類。 – brennanenanen

相關問題