v2.5.2
Giriş yap

Javascript'te global değişkene değer atama sorunu

istek61
391 defa görüntülendi

NowDate ve LaterDate değişkenleri global olarak başlıyor.

dates ID li input da yeni bir zaman seçildiginde OnSelect bölümündeki NowDate e yeni bir tarih kaydedip.
bir function la bunu dışarıdan çağırıyorum. log da yeni zamanın seçildigi gözüksede dışarıdaki functionda ilk tarihi alıyor.

onSelect'den neden global değişkene atama yapamıyorum. kendi içinde kalıyor.


    const date = new Date("2021-");
    const NowDate = ("0" + date.getDate()).slice(-2)+"/"+(date.getMonth()+1)+"/"+date.getFullYear();
    const LaterDate = ("0" + (date.getDate()+1)).slice(-2)+"/"+(date.getMonth()+1)+"/"+date.getFullYear();


  $("#dates").Zebra_DatePicker({
    start_date: new Date(),
    months: [ "Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık" ],
    days: [ "Pa", "Pt", "Sl", "Ça", "Pe", "Cu", "Ct" ],
    show_select_today: "Bugün",
    lang_clear_date: "Tarihi Sil",
    format: "d/m/Y",
    start_date :true,
    start_date: new Date(),
    onSelect: function() { 
        $(this).change();
        const date = new Date("2021-");
        const NowDate = ("0" + date.getDate()).slice(-2)+"/"+(date.getMonth()+1)+"/"+date.getFullYear();
        const LaterDate = ("0" + (date.getDate()+1)).slice(-2)+"/"+(date.getMonth()+1)+"/"+date.getFullYear();
        console.log(NowDate);
        }
  });
  
  
  // yeni tarih seçtikten sonra bunu çalıştırıyorum. fakat ilk tarihi alıyor.
  function xxx() {
  console.log(NowDate);
  }

Cevap yaz
Cevaplar (2)
makifgokce
880 gün önce

const a atanan değer değiştirilemez onun yerine let kullan.
daha iyi anlamak açısından https://youtu.be/kjLv-sIyVa8

let NowDate = ("0" + date.getDate()).slice(-2)+"/"+(date.getMonth()+1)+"/"+date.getFullYear();
let LaterDate = ("0" + (date.getDate()+1)).slice(-2)+"/"+(date.getMonth()+1)+"/"+date.getFullYear();
$("#dates").Zebra_DatePicker({
    NowDate = ("0" + date.getDate()).slice(-2)+"/"+(date.getMonth()+1)+"/"+date.getFullYear();
    LaterDate = ("0" + (date.getDate()+1)).slice(-2)+"/"+(date.getMonth()+1)+"/"+date.getFullYear();
})
function xxx(){
    console.log(NowDate, LaterDate);
}
istek61
879 gün önce

Teşekkür ederim. kafam patlamıştı sonunda oldu...