2016-04-01 26 views
0

numaralı düğmeyi tıklatarak, sonraki ve sonraki güne tıklayarak başvurumda artan ve azalan bir tarih var, tarih artıyor Ama 31, 30, 29 gibi bir ay sonuna geldikten sonra), 28 (feb) o zaman ayın yanı sıra tarihi de değiştirmelidir. Ama artmaya devam ediyor. Şu ana kadar ben aşağıdaki kodu ileTarih, gün, ay ve yıl artışını Javascript

var today = new Date(); 
    var days = ["Sunday","Monday","Tuesday", 
       "Wednesday","Thursday","Friday","Saturday"]; 
    var months = ["January","February","March", 
       "April","May","June","July","August", 
       "September","October","November","December"]; 
    var nextDate = 0; 

fonksiyon set_todayDate() {

document.getElementById("todaysDate").innerHTML = 
         ""+days[today.getDay()]+", 
         "+months[today.getMonth()]+" 
         "+today.getDate()+" 
        "+today.getFullYear(); 

} sonraki tarihe ve önceki tarih için

denedi, sadece ben artan am ve değişken

azalan
 function nextDateMethod(){ 

     nextDate++; 

    document.getElementById("todaysDate").innerHTML = ""+days[today.getDay() 
     +dayIncrement]+ 
     ", "+months[today.getMonth()]+" 
     "+(today.getDate()+dayIncrement)+""+today.getFullYear(); 
    } 



function prevDate(){ 
     nextDate--; 

document.getElementById("todaysDate"). 
    innerHTML = months[today.getMonth()]+", 
    "+(today.getDate()+nextDate)+" "+today.getFullYear(); 
    } 

Lütfen herhangi biri bana yardım edin

+0

Sizin temel problem zaten burada bir cevabı var bir tarihe, 1 gün ekleyin için yapılması gerekenler: * [geçerli tarihe +1 ekle *] (http://stackoverflow.com/questions/9989382/add-1-to-current-date/9989458#9989458). – RobG

+0

Soru hakkında kesin olun! Eğer belirli bir çıkış formatı bekliyorsanız, sorunuzda açıkça belirtiniz. –

cevap

3

bu deneyin yardımcı olacaktır:

if (!Date.now) { 
 
    Date.now = function() { 
 
    return new Date().getTime(); 
 
    } 
 
} 
 
var theDate = Date.now(); 
 

 
document.getElementById('date').innerText = getTheDate(theDate) 
 

 
document.getElementById('prev').addEventListener("click", function() { 
 
    theDate -= 86400000; 
 
    document.getElementById('date').innerText = getTheDate(theDate) 
 
}) 
 
document.getElementById('next').addEventListener("click", function() { 
 
    theDate += 86400000; 
 
    document.getElementById('date').innerText = getTheDate(theDate) 
 
}) 
 

 
function getTheDate(getDate) { 
 
    var days = ["Sunday", "Monday", "Tuesday", 
 
    "Wednesday", "Thursday", "Friday", "Saturday" 
 
    ]; 
 
    var months = ["January", "February", "March", 
 
    "April", "May", "June", "July", "August", 
 
    "September", "October", "November", "December" 
 
    ]; 
 
    var theCDate = new Date(getDate); 
 
    return days[theCDate.getDay()] + ', ' + theCDate.getDate() + '-' + months[theCDate.getMonth()] + '-' + theCDate.getFullYear(); 
 
}
<div id="date" style="height:100px; width:300px;"> 
 
</div> 
 
<button id="prev"> 
 
    <</button> 
 
    <button id="next">></button>

+0

Sir onun iyi çalışıyor .. Çok teşekkürler ... Aslında bu formatı arıyordum. – user3107283

+0

Sorun değil! Memnun kaldım! :) – Roy

+0

Gerçekten bu bana çok yardımcı oldu .. :-) – user3107283

0

Tarihin 30 veya 31'e ulaştığı tarihte kodunuzun neden ay otomatik olarak güncellenmesi gerektiğini göremiyorum. GetDate() işlevini alıyorsunuz ve bu bir sayı döndürüyor. Ardından, 1 ile artar ya da azalırsınız. Sadece var x=y+z gibi davranacaktır. Date nesnesini değiştirmek zorunda kalacaksınız veya aylar ve artık yıl sistemlerini elle yapılandırmanız gerekecek. http://www.w3schools.com/jsref/jsref_obj_date.asp adresindeki Date Reference nesnesini kontrol ettim ve C# 'daki gibi addDays() gibi bir fucntion oluşturmadınız. Yani sanırım takvim kuralını manuel olarak uygulamanız gerekecek. Bildirilen ve

0

İşte belli bir tarihe gün herhangi bir sayıda eklemek için basit işlevi var nextDate başlatıldı nerede Ve ayrıca, söz edin, hile tarih nesnesi

function addDays(date, days) { 
    var result = new Date(date); 
    result.setDate(result.getDate() + days); 
    return result; 
} 

YAZ setDate yöntemini kullanıyor : tarih sınıfı değişken olduğundan

Date.prototype.addDays = function(days) { 
    this.setDate(this.getDate() + parseInt(days)); 
    return this; 
}; 
+0

ilginç! Bunun işe yaradığını bilmiyordum. Gerçekten, tarih nesnesi, ayarlamak istediğiniz tarihin ayın gün sayısından daha büyük olması durumunda, tanımak için yeterince akıllıdır. –

+0

ya da kendimi eksik belgelere buluyorum, bu kesinlikle çok sezgisel bir yapı değil @AntonHarald –

0

Eh, (Aşağıda koşu örneğidir) bu deneyin de ileride kullanmak kolaylaştırmak için bir yöntem ekleyebilirsiniz:

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

 
$("#Prev").click(function(){ 
 
    date = date -1; 
 
    if(date<1){ 
 
    month = month -1; 
 
    if(month == 0){ 
 
     year = year -1; 
 
     date = 31; 
 
     month = 12; 
 
     } else{ 
 
     if(month == 2){ 
 
     date = 28 
 
     } else if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12){ 
 
     date = 31 
 
     } else{ 
 
     date = 30 
 
     } 
 
     } 
 
    } 
 
    $("#displayDate")[0].innerHTML = date + "/" + month + "/" + year; 
 
}); 
 

 
$("#Next").click(function(){ 
 
    date = date + 1; 
 
    if(date>28 && month == 2){ 
 
    date = 1; 
 
    month = 3; 
 
} 
 
    if(date> 30 && (month == 4 || month == 6 || month == 9 || month == 11)){ 
 
    date = date +1; 
 
    month = month +1; 
 
    } else if (date> 31){ 
 
    date =1; 
 
    month = month+1; 
 
    if(month >12){ 
 
    year = year +1; 
 
     month= 1; 
 
     date = 1; 
 
    } 
 
    } 
 
    
 
    $("#displayDate")[0].innerHTML = date + "/" + month + "/" + year; 
 
}); 
 

 
$("#displayDate")[0].innerHTML = date + "/" + month + "/" + year;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div><button id="Prev">Prev</button><div id="displayDate"></div><button id="Next">Next</button></div>

Not: Leap year için Durumu henüz eklendi o zaman ben de o katacak cevap beklenen ise bana bildirin değildir.

Umut bu :)

0

tarih manipülasyon bir sürü halleden çok düzgün kütüphane denilen moment.js vardır görevleri görüntülemek ve tarihleri ​​görüntülemek için çeşitli uygun yollar sunar. Web sayfası ve dokümantasyon çok iyi yapıldı, bu yüzden çabalarına bakmaya değer olduğunu düşünüyorum.

İstenen günün tarihini arttırma isteğiniz şu an nasıl olur.js:

var new_date_str = moment().add(1, 'days').format("dd, MMMM, D, YYYY"); 

tam çalışan örneğin bu keman bkz: https://jsfiddle.net/me6pdk8L/2/

İlgili konular