2016-04-10 17 views
1

Dinamik basit bir navigasyon kullanan tarihleri ​​değiştirirken veri özelliklerini güncelleyerek biraz sorun yaşıyorum ile güncel tarihten substract tarihleri ​​ekleyin: BuradajQuery navigasyon

<button id="prev" data-date="2016, 04, 10">Previous</button> 
<button id="next" data-date="2016, 04, 03">Next</button> 

javascript: Burada

html :

$("#prev, #next").on('click', function() { 
     var string = $(this).attr('data-date'); 

     if ($(this).attr('id') === "next") { 
      $(this).attr("data-date", addDays(7, new Date(string))); 
      $("#prev").attr('data-date', addDays(-7, new Date(string))); 
     } else { 
      $(this).attr('data-date', addDays(-7, new Date(string))); 
      $("#next").attr('data-date', addDays(7, new Date(string))); 
     } 
    }); 
0:

function addDays(noOfDays, date) { 
     var origTimezoneOffset = date.getTimezoneOffset(); 
     date = new Date(date.getTime() + (noOfDays * (1000 * 60 * 60 * 24))); 
     var offsetDiff = (date.getTimezoneOffset() - origTimezoneOffset) * 60 * 1000; 
     date = new Date(date.getTime() + offsetDiff); 

     var month = (date.getMonth() + 1); 
     var day = (date.getDate()); 
     if (month < 10) { 
      month = '0' + month; 
     } 
     if (day < 10) { 
      day = '0' + day; 
     } 
     var formatted = date.getFullYear() + ', ' + month + ', ' + day; 
     return formatted; 
    } 

ve burada onclick olaydır

Her şey FF ve Chrome mükemmel gayet iyi çalışıyor, ancak IE ans Safari NaN, NaN, NaN

Ben de jsbin oluşturduk döndürür: göre https://jsbin.com/puvakivika/edit?html,js,output

cevap

0

Date format sen dize "dönüştürmek gerekir 2016, 04, 10'dan "2016/04/10" e kadar procede.

tarih biçimi hakkında daha fazla bilgi için lütfen durumda Parse

bkz değiştirmek basit bir dize kullanmak gerekir: .Kapağı (/,/g, '-') veriler için

yerine bağladıkları .data(key, value)

function addDays(noOfDays, date) { 
    var origTimezoneOffset = date.getTimezoneOffset(); 
    date = new Date(date.getTime() + (noOfDays * (1000 * 60 * 60 * 24))); 
    var offsetDiff = (date.getTimezoneOffset() - origTimezoneOffset) * 60 * 1000; 
    date = new Date(date.getTime() + offsetDiff); 

    var month = (date.getMonth() + 1); 
    var day = (date.getDate()); 
    if (month < 10) { 
    month = '0' + month; 
    } 
    if (day < 10) { 
    day = '0' + day; 
    } 
    var formatted = date.getFullYear() + ', ' + month + ', ' + day; 
    return formatted; 
} 

$(function() { 
    $("#prev, #next").on('click', function(e) { 
    var string = $(this).attr('data-date').replace(/, /g, '-'); 

    if ($(this).attr('id') === "next") { 
     $(this).attr("data-date", addDays(7, new Date(string))); 
     $("#prev").attr('data-date', addDays(-7, new Date(string))); 
    } else { 
     $(this).attr('data-date', addDays(-7, new Date(string))); 
     $("#next").attr('data-date', addDays(7, new Date(string))); 
    } 
    }); 
}); 
<script src="https://code.jquery.com/jquery-1.12.1.min.js"></script> 

<button id="prev" data-date="2016, 04, 10">Previous</button> 
<button id="next" data-date="2016, 04, 03">Next</button> 
+0

Teşekkür yo kullanmak .attr kullanarak u. Günümü kurtardın. – Alko

İlgili konular