• 25-03-2017, 21:24:20
    #1
    Merhaba arkadaşlar aşağıdaki gibi ileri sayım sayacm var fakat saniye dakika saat gün ay yıl şeklinde olsun istiyorum bir türlü beceremedim bilen biri yayardımcı olursa sevinirim.

    window.onload=function() {
      // Month,Day,Year,Hour,Minute,Second
      upTime('apr,05,2016,00:00:00'); // ****** Change this line!
    };
    function upTime(countTo) {
      now = new Date();
      countTo = new Date(countTo);
      difference = (now-countTo);
      days=Math.floor(difference/(60*60*1000*24)*1);
      years = Math.floor(days / 365);
      if (years > 1){ days = days - (years * 365)}
      hours=Math.floor((difference%(60*60*1000*24))/(60*60*1000)*1);
      mins=Math.floor(((difference%(60*60*1000*24))%(60*60*1000))/(60*1000)*1);
      secs=Math.floor((((difference%(60*60*1000*24))%(60*60*1000))%(60*1000))/1000*1);
      document.getElementById('years').firstChild.nodeValue = years;
      document.getElementById('days').firstChild.nodeValue = days;
      document.getElementById('hours').firstChild.nodeValue = hours;
      document.getElementById('minutes').firstChild.nodeValue = mins;
      document.getElementById('seconds').firstChild.nodeValue = secs;
    
      clearTimeout(upTime.to);
      upTime.to=setTimeout(function(){ upTime(countTo); },1000);
    }
  • 25-03-2017, 22:37:15
    #2
    html dosyanızda years, days gibi id'si olan elemanlar olmalı onların sırası değişecek sanırım.
  • 25-03-2017, 23:02:01
    #3
    zembla adlı üyeden alıntı: mesajı görüntüle
    html dosyanızda years, days gibi id'si olan elemanlar olmalı onların sırası değişecek sanırım.
    Alakası yok hocam ben başka bişey soruyorum html den bağımsız burada yıl gün saat dakika saniye var fakat ay hesaplaması yok onu diyorum ben ay hesaplaması da ekleyebilecek birileri varsa yada yeniden bu tarz bişey kodyalabilecek biri varsa rica ediyorum
  • 25-03-2017, 23:56:18
    #4
    Hımm. Ayların gün sayısı farklı olduğu için bu mantıkta zor gözüküyor. Ama standart bir işleme benziyor. Google'da aratınca bulunabilir sanırım. Şurası var ama tam bakmadım.

    http://jsfiddle.net/x9yL7xL7/
  • 26-03-2017, 00:42:51
    #5
    Tarih hesaplamalarınız farklı yapıldığından çok karıştırmak istemedim.

    Mevcut tarih hesaplaması ile yapmaya çalıştım.

    http://codepen.io/anon/pen/qrymjB

    Önceki ve sonraki tarih arasındaki farkın negatif olma durumunu göz önünde bulundurarak sonuçların önüne eksi(-) eklenmesini kaldırmak için Math.abs() ile mutlak değere çevirmeniz daha sağlıklı olacaktır.

    Girilen tarih formatı bazı tarayıcılarda sorun çıkarabilir.

    Kişisel sitemde yazmış olduğum JavaScript Dersleri bölümünden JavaScript Tarih Formatları yazımdan bilgi alabilirsiniz.

    Hayırlı günler dilerim.

    must4f4topal adlı üyeden alıntı: mesajı görüntüle
    Merhaba arkadaşlar aşağıdaki gibi ileri sayım sayacm var fakat saniye dakika saat gün ay yıl şeklinde olsun istiyorum bir türlü beceremedim bilen biri yayardımcı olursa sevinirim.

    window.onload=function() {
      // Month,Day,Year,Hour,Minute,Second
      upTime('apr,05,2016,00:00:00'); // ****** Change this line!
    };
    function upTime(countTo) {
      now = new Date();
      countTo = new Date(countTo);
      difference = (now-countTo);
      days=Math.floor(difference/(60*60*1000*24)*1);
      years = Math.floor(days / 365);
      if (years > 1){ days = days - (years * 365)}
      hours=Math.floor((difference%(60*60*1000*24))/(60*60*1000)*1);
      mins=Math.floor(((difference%(60*60*1000*24))%(60*60*1000))/(60*1000)*1);
      secs=Math.floor((((difference%(60*60*1000*24))%(60*60*1000))%(60*1000))/1000*1);
      document.getElementById('years').firstChild.nodeValue = years;
      document.getElementById('days').firstChild.nodeValue = days;
      document.getElementById('hours').firstChild.nodeValue = hours;
      document.getElementById('minutes').firstChild.nodeValue = mins;
      document.getElementById('seconds').firstChild.nodeValue = secs;
    
      clearTimeout(upTime.to);
      upTime.to=setTimeout(function(){ upTime(countTo); },1000);
    }
    zembla adlı üyeden alıntı: mesajı görüntüle
    html dosyanızda years, days gibi id'si olan elemanlar olmalı onların sırası değişecek sanırım.
    must4f4topal adlı üyeden alıntı: mesajı görüntüle
    Alakası yok hocam ben başka bişey soruyorum html den bağımsız burada yıl gün saat dakika saniye var fakat ay hesaplaması yok onu diyorum ben ay hesaplaması da ekleyebilecek birileri varsa yada yeniden bu tarz bişey kodyalabilecek biri varsa rica ediyorum
    zembla adlı üyeden alıntı: mesajı görüntüle
    Hımm. Ayların gün sayısı farklı olduğu için bu mantıkta zor gözüküyor. Ama standart bir işleme benziyor. Google'da aratınca bulunabilir sanırım. Şurası var ama tam bakmadım.

    http://jsfiddle.net/x9yL7xL7/
  • 26-03-2017, 01:56:46
    #6
    seogrenci adlı üyeden alıntı: mesajı görüntüle
    Tarih hesaplamalarınız farklı yapıldığından çok karıştırmak istemedim.

    Mevcut tarih hesaplaması ile yapmaya çalıştım.

    http://codepen.io/anon/pen/qrymjB

    Önceki ve sonraki tarih arasındaki farkın negatif olma durumunu göz önünde bulundurarak sonuçların önüne eksi(-) eklenmesini kaldırmak için Math.abs() ile mutlak değere çevirmeniz daha sağlıklı olacaktır.

    Girilen tarih formatı bazı tarayıcılarda sorun çıkarabilir.

    Kişisel sitemde yazmış olduğum JavaScript Dersleri bölümünden JavaScript Tarih Formatları yazımdan bilgi alabilirsiniz.

    Hayırlı günler dilerim.
    Çok teşekkür ederim hocam.

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 01:56:46 -->-> Daha önceki mesaj 01:55:32 --

    zembla adlı üyeden alıntı: mesajı görüntüle
    Hımm. Ayların gün sayısı farklı olduğu için bu mantıkta zor gözüküyor. Ama standart bir işleme benziyor. Google'da aratınca bulunabilir sanırım. Şurası var ama tam bakmadım.

    http://jsfiddle.net/x9yL7xL7/
    İlginiz için teşekkür ederim hocam
  • 26-03-2017, 12:11:19
    #7
    Sayaçlara ayları fazla almıyorlar anlaşılan. Aslında bunun bir mantığı var sanırım. Aylar 28, 29, 30 ve 31 gün olabiliyor duruma göre. Diyelim bugün 16 Mart olsun. Sayım yapacağımız gelecekteki tarih 15 Mayıs olsun. Aradaki komple ay Nisan. Şimdi bunu nasıl yorumlayacağız 1 ay ve 30 gün mü yoksa 2 ay sıfır gün mü. Kestirmeden her ay 30 gün kabul edilebilir ama bazı durumlarda hata verecek. Örneğin 16 Ocak ve 15 Mart (Şubat 28 olsun diyelim). Toplam gün sayısı 58. Aylar 30 kabul edilirse 1 ay 28 gün denmesi gerekli ama ilk örnekte gene bir ayın 16'sı gelecek ayın 15'i vardı ve 2 ay denebiliyordu vs. En iyisi şu olabilir. Diyelim bugün ayın 17'si sıra ile gelecekteki her ayın 17 olunca bir ay geçmiş kabul edilebilir. Ya da bugün 30 Ocak. Şubatta 30 yok o nedenle 28 veya 29 olunca bir ay geçmiş olacak vs. Biraz karışık bir durum. Artık yılları, ayların farklı gün sayılarını vs. hesaba katmak gerekecek sanki. Basitçe gün sayısını 30'a bölmek yeterli değil gibi. Özellikle aralık uzun yıllarla yayılıyorsa 31 gün olan aylar hesabı ciddi bozacak sanırım. Ayları hiç karıştırmamak da bir alternatif.

    İnternette şunu buldum:
    function Noofmonths(date1, date2) {
        var Nomonths;
        Nomonths= (date2.getFullYear() - date1.getFullYear()) * 12;
        Nomonths-= date1.getMonth() + 1;
        Nomonths+= date2.getMonth() +1; // we should add + 1 to get correct month number
        return Nomonths <= 0 ? 0 : Nomonths;
    }
    Bunu denemedim gerçi ama aradaki tam ayları sayıyor anlaşılan. Modifiye etmek gerekebilir. Elemanlar yazmışlar zaten "iki tarih arasındaki ay sayısı epey yoruma açık bir konu" diye.