2017-06-30 12 views

回答

-1

你可以嘗試切換天和一年

var date = new Date('29/06/2017'.split('/').reverse().join('/')); 
var plusOneYear = date.setFullYear(date.getFullYear()+1); 
console.log(date); // output: Fri Jun 29 2018 00:00:00 
console.log(new Date(plusOneYear)); // output: Fri Jun 29 2018 00:00:00 
console.log(date.toLocaleDateString()) // output: 6/29/2018 
console.log(date.getDate() + '/' + (date.getMonth+1) + '/' + date.getFullYear()); // output: 29/6/2018 

另一種方式是

var date = '29/06/2017'.split('/'); // will become [day][month][year] 
var newDate = date[2] + '/' + date[1] + '/' + date[0]; // join in format you would prefer 
var plusOneYear = newDate.setFullYear(newDate.getFullYear()+1); 
console.log(new Date(plusOneYear)); 
console.log(newDate.toLocaleDateString()) // output: 6/29/2018 

編輯

+0

謝謝你的工作,但我怎麼才能添加一年到那個日期,並再次將其格式化爲這個合成夥伴28/06/2018 – bharathRaj

+0

我已經編輯我的asnwer –

+0

謝謝你的工作 – bharathRaj

-1

試試這個,

var MyDate = new Date('29/06/2017'.split('/').reverse().join('/')); 
new Date(MyDate.setYear(MyDate.getFullYear() + 1)); 
+0

謝謝你的工作,但是最後是這個星期五Jun 29 2018 00:00:00 GMT + 0530(印度標準時間)我需要它是29/06/2018 – bharathRaj

+0

@bharathRaj你可以使用Moment.js格式化字符串。就像路易斯在他的回答中提到的 –

0

不像其他用戶,我想要你知道解決這個問題的另一種方法。

Moment.js

Documentation - Reference

有什麼目的?

該庫在Javascript Developer中非常流行,因爲它很容易實現,並允許您使用提供的內置功能更容易地操作Date方法。

另外,使用這個庫解決的另一個有趣的問題是國際化

國際和日期

正如你可能知道,每一種語言都有它自己的方式來處理和寫入日期。 (翻譯月份,不同顯示等)。

Moment.js提供了一套完整的功能,可以讓您輕鬆處理預翻譯的單詞和句法。

如何使用Moment.js解決您的問題

var myDate = moment("29/06/2017", "MM/DD/YYYY"); 

此外,您可以檢查您的日期是有效的

myDate.isValid(); 

在這裏,你可以簡單地每年通過補充:

myDate.add(1, 'y'); // Which stands for add a year 
+0

謝謝你的建議,我會看到它一次 – bharathRaj

0

這是兩個問題之一。解析部分由Why does Date.parse give incorrect results回答。一旦你有一個日期,增加一年是直截了當的,但你需要考慮增加一年到2月29日,這將返回3月1日(因爲將不會有一個29年2月29日)。

// Simple parser for DD/MM/YYYY 
 
function parseDMY(s) { 
 
    var b = s.split(/\D/); 
 
    return new Date(b[2], b[1]-1, b[0]); 
 
} 
 

 
// Simple formatter: Date to DD/MM/YYYY 
 
function formatDMY(d) { 
 
    return ('0' + d.getDate()).slice(-2) + '/' + 
 
    ('0' + (d.getMonth()+1)).slice(-2) + '/' + 
 
    d.getFullYear(); 
 
} 
 

 
// Add year to a Date 
 
function addYear(d) { 
 
    var date = d.getDate(); 
 
    d.setFullYear(d.getFullYear() + 1); 
 
    // Test if 29 Feb rolled over to 1 Mar 
 
    if (date != d.getDate()) { 
 
    d.setDate(d.getDate() - 1); 
 
    } 
 
    return d; 
 
} 
 

 
// Tests (minimal) 
 
['29/02/2016','29/6/2017'].forEach(function(s){ 
 
    var date = parseDMY(s); 
 
    addYear(date); 
 
    console.log(formatDMY(date)); 
 
});

如果你想前一天(如30/06/2016 - > 29/06/2017),那麼你需要添加的一年,這是相同的後減去一天因爲這行:

d.setDate(d.getDate() - 1); 

,或者你可以修改addYear功能來爲你做它。

相關問題