2015-10-11 21 views
11

Bugüne bir yıl eklemeye çalışıyorum. standard JavaScript'i kullanmanıza izin vermeyen bir sistemde çalışıyorum. Ben denedimGeçtiğimiz yıllara yıla ekle

javascript:now(); 

: Mesela

, bugünün tarihi almak için ben kullanmak zorunda

javascript:now(+1); 

Bunu daha önce hiç görmedim, bunlarla bir yıl ekleyerek ihtiyacı duyuyorum günümüzün tarihi ...

Daha önce bu şekilde güncel bir tarih aldığını gören var mı? Ve eğer öyleyse, nasıl bir yıl ekleyebilirim?

+1

Olası kopyalar [JavaScript bundan bir yıl nasıl belirlenir] (http://stackoverflow.com/questions/8609261/how-to-determine-one-year-from-now-in-javascript) – rnevius

+0

Bu bir kopya değil.Yukarıda belirttiğim gibi, standart javascript metodolojisini kullanamazsınız – Code

+2

Bu kodun hangi sistemde çalıştırıldığına dair bir fikir verdiyseniz bu yararlı olabilir. –

cevap

24

Aşağıdaki kodu kullanarak bugünün tarihi ile yeni tarih nesnesi oluşturabilirsiniz: Belirli bir zaman bir tarih oluşturmak istiyorsanız

var d = new Date(); 
console.log(d); 
// => Sun Oct 11 2015 14:46:51 GMT-0700 (PDT) 

, yeni tarihi kurucu bağımsız geçebilir

var d = new Date(2014); 
console.log(d) 
// => Wed Dec 31 1969 16:00:02 GMT-0800 (PST) 

Günün tarihini almak ve bir yıl eklemek istiyorsanız, önce bir tarih nesnesi oluşturabilir, ilgili özelliklere erişebilir ve yeni bir tarih nesnesi oluşturmak için bunları kullanabilirsiniz

var d = new Date(); 
var year = d.getFullYear(); 
var month = d.getMonth(); 
var day = d.getDate(); 
var c = new Date(year + 1, month, day) 
// => Tue Oct 11 2016 00:00:00 GMT-0700 (PDT) 

Sen olmasını istediğinize yıl ayarlamak için kullanın Date Object

+10

İki tarih nesnesi oluşturmaya gerek yoktur. d.setFullYear (d.getFullYear() + 1) 'işi çok daha az kodla yapar. – RobG

+1

ancak orijinal tarihini de kaybedersiniz –

+0

Sonra: 'var d = yeni Tarih (+ originalDate)' orijinal tarihi kopyalayacaktır. – RobG

22

MDN'yi

üzerinde Date.prototype.setFullYear yöntemi tarih nesne üzerinde yöntemleri hakkında daha fazla bilgi bulabilirsiniz. Örneğin

:

var aYearFromNow = new Date(); 
aYearFromNow.setFullYear(aYearFromNow.getFullYear() + 1); 

gerçekten bu yöntemler Çalıştığınız ortamda mevcut değilse JavaScript tarihleri ​​çalışmak için başka bir yolu yoktur.

0

Buradaki yanıtlar genellikle çalışır, ancak bir yıl süren yıl işlevselliği ekleyen bir component yazdım. Ayrıca diğer zaman birimleri ile çalışır (aylar, günler, haftalar, vs.).

Normal örnek:

var originalDate = new Date('January 5, 2017 12:00:00'); 
var newDate = dateAdd(originalDate, 1, 'year'); // => January 5, 2018 12:00:00 

Artık yıl örnek:

var originalDate = new Date('February 29, 2016 12:00:00'); 
var newDate = dateAdd(originalDate, 1, 'year'); // => February 28, 2017 12:00:00 
1 Mart dönecekti bir yıl ekleyerek diğer yöntemler ile

ama doğru ay korur çünkü bu benim için daha kullanışlı görünüyor.

dateAdd() yöntemini kullanmak için bileşeni içe aktarmaya davetlisiniz.

0

// Bu kod parçası, artık yıl ekleme işlemini de gerçekleştirecek.

function updateExpiryDate(controlID, value) { 
    if ($("#ICMEffectiveDate").val() != '' && 
     $("#ICMTermYears").val() != '') { 

     var effectiveDate = $("#ICMEffectiveDate").val(); 
     var date = new Date(effectiveDate); 
     var termYears = $("#ICMTermYears").val(); 

     date = new Date(date.setYear(date.getFullYear() + parseInt(termYears))); 
     var expiryDate = (date.getMonth() + 1) + '/' + date.getDate() + '/' + date.getFullYear(); 
     $('#ICMExpiryDate').val(expiryDate); 
    } 
} 
ait