none
Seçilen ayın ilk ve son gününü elde etmek RRS feed

  • Soru

  • Merhaba.

    Aylarla dolu bir dropdown var.  Hangi ayı seçersem o ayın ilk ve son gününü elde etmek istiyorum .Yılı şimdiki yıl olacak. Bunu Javascript te yapmak istiyorum. Yardımcı olursanız sevinirim. 


    7 Eylül 2016 Çarşamba 14:26

Yanıtlar

  • https://jsfiddle.net/fryLnpyr/2/

    $(function(){
      $('#months').change(function(){
        var d = new Date();
        var d1 = new Date(d.getFullYear(), $(this).val(), 1);
        var d2 = new Date(d.getFullYear(), parseInt($(this).val()) + 1, 0);
        $('#d1').text(d1.toString());
        $('#d2').text(d2.toString());
      });
    })



    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com




    7 Eylül 2016 Çarşamba 15:54
    Moderatör
  • http://momentjs.com/ bu adrese gir moment.js offical sitesidir. Documents bölümünde örneklerle gayet güzel açıklamışlar. İşini görecek şey bu, bu olmazsa başka bir şey olur sanmıyorum. Onun dışında artık ebced hesabı parmak sayarak bulacan :)

    Fullstack Developer

    • Yanıt Olarak İşaretleyen Alican Kırma 8 Eylül 2016 Perşembe 09:51
    7 Eylül 2016 Çarşamba 14:53
  • var month = 1; 
    var ayinIlkGunu = new Date(new Date().getFullYear(), month, 1);
        
    var ayinSonGunu = ayinIlkGunu;
    
    ayinSonGunu.setMonth(ayinSonGunu.getMonth()+1);
    ayinSonGunu.setDate(ayinSonGunu.getDate()-1);
    

    Ornek bu yilin Subat ayi icin. Dikkat et JS'de aylar 0-11.

    Guncelleme: ayinIlkGunu bir object referans oldugunu atlamisim. Aslinda cok daha basit (calisan HTML ornegi):

    <!DOCTYPE html>
    <html>
    <body>
    
    <p>Click the button to display the primitive value of a date object.</p>
    
    <select id="aylar">
      <option value="0">Ocak</option>
      <option value="1">Subat</option>
      <option value="2">Mart</option>
      <option value="3">Nisan</option>
      <option value="4">Mayıs</option>
      <option value="5">Haziran</option>
      <option value="6">Temmus</option>
      <option value="7">Ağustos</option>
      <option value="8">Eylül</option>
      <option value="9">Ekim</option>
      <option value="10">Kasım</option>
      <option value="11">Aralık</option>
    </select>
    <button onclick="ayGoster()">Ayin ilk ve son gununu goster</button>
    
    <p id="ilk"></p>
    <p id="son"></p>
    
    <script>
    function ayGoster() {
        var month = parseInt(document.getElementById("aylar").value); 
    
        var ayinIlkGunu = new Date(new Date().getFullYear(), month, 1);
        var ayinSonGunu = new Date(new Date().getFullYear(), month+1, 0);
    
        document.getElementById("ilk").innerHTML = ayinIlkGunu;
        document.getElementById("son").innerHTML = ayinSonGunu;
    }
    </script>
    
    </body>
    </html>
    
    

    • Düzenleyen CetinBasoz 7 Eylül 2016 Çarşamba 16:04
    • Yanıt Olarak İşaretleyen Alican Kırma 8 Eylül 2016 Perşembe 08:02
    7 Eylül 2016 Çarşamba 15:15
  • yyyy-mm-dd formatında ve aralarına nokta değil de tire koyarak formatlarsan gösterecek

    return yyyy + "-" + mm + "-" + dd;


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    • Yanıt Olarak İşaretleyen Alican Kırma 8 Eylül 2016 Perşembe 08:47
    8 Eylül 2016 Perşembe 08:29
    Moderatör

Tüm Yanıtlar

  • http://momentjs.com/ bu adrese gir moment.js offical sitesidir. Documents bölümünde örneklerle gayet güzel açıklamışlar. İşini görecek şey bu, bu olmazsa başka bir şey olur sanmıyorum. Onun dışında artık ebced hesabı parmak sayarak bulacan :)

    Fullstack Developer

    • Yanıt Olarak İşaretleyen Alican Kırma 8 Eylül 2016 Perşembe 09:51
    7 Eylül 2016 Çarşamba 14:53
  • var month = 1; 
    var ayinIlkGunu = new Date(new Date().getFullYear(), month, 1);
        
    var ayinSonGunu = ayinIlkGunu;
    
    ayinSonGunu.setMonth(ayinSonGunu.getMonth()+1);
    ayinSonGunu.setDate(ayinSonGunu.getDate()-1);
    

    Ornek bu yilin Subat ayi icin. Dikkat et JS'de aylar 0-11.

    Guncelleme: ayinIlkGunu bir object referans oldugunu atlamisim. Aslinda cok daha basit (calisan HTML ornegi):

    <!DOCTYPE html>
    <html>
    <body>
    
    <p>Click the button to display the primitive value of a date object.</p>
    
    <select id="aylar">
      <option value="0">Ocak</option>
      <option value="1">Subat</option>
      <option value="2">Mart</option>
      <option value="3">Nisan</option>
      <option value="4">Mayıs</option>
      <option value="5">Haziran</option>
      <option value="6">Temmus</option>
      <option value="7">Ağustos</option>
      <option value="8">Eylül</option>
      <option value="9">Ekim</option>
      <option value="10">Kasım</option>
      <option value="11">Aralık</option>
    </select>
    <button onclick="ayGoster()">Ayin ilk ve son gununu goster</button>
    
    <p id="ilk"></p>
    <p id="son"></p>
    
    <script>
    function ayGoster() {
        var month = parseInt(document.getElementById("aylar").value); 
    
        var ayinIlkGunu = new Date(new Date().getFullYear(), month, 1);
        var ayinSonGunu = new Date(new Date().getFullYear(), month+1, 0);
    
        document.getElementById("ilk").innerHTML = ayinIlkGunu;
        document.getElementById("son").innerHTML = ayinSonGunu;
    }
    </script>
    
    </body>
    </html>
    
    

    • Düzenleyen CetinBasoz 7 Eylül 2016 Çarşamba 16:04
    • Yanıt Olarak İşaretleyen Alican Kırma 8 Eylül 2016 Perşembe 08:02
    7 Eylül 2016 Çarşamba 15:15
  • <script>
    function daysInMonth(month) 
    {
       var year = new Date().getFullYear();
       return new Date(year, month, 0).getDate();
    }
    alert(daysInMonth(7)); 
    alert(daysInMonth(2));
    </script>
    Son gününü hesaplamak için 
    7 Eylül 2016 Çarşamba 15:16
  • https://jsfiddle.net/fryLnpyr/2/

    $(function(){
      $('#months').change(function(){
        var d = new Date();
        var d1 = new Date(d.getFullYear(), $(this).val(), 1);
        var d2 = new Date(d.getFullYear(), parseInt($(this).val()) + 1, 0);
        $('#d1').text(d1.toString());
        $('#d2').text(d2.toString());
      });
    })



    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com




    7 Eylül 2016 Çarşamba 15:54
    Moderatör
  • Ya sen bunu cok once yazmissin, MSDN forumlarini her kim yazdiysa, ben ancak guncelleme yaptiktan sonra goruyorum:) Bosuna vakit kaybi, senden kopya cekmek vardi.
    7 Eylül 2016 Çarşamba 16:08
  • Ya sen bunu cok once yazmissin, MSDN forumlarini her kim yazdiysa, ben ancak guncelleme yaptiktan sonra goruyorum:) Bosuna vakit kaybi, senden kopya cekmek vardi.
    aslında ben yazana kadar, siz yanıtlamışsınız görseydim uğraşmazdım :) , aynen forum yazılımı çok dandik.

    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    7 Eylül 2016 Çarşamba 16:11
    Moderatör
  • function Ayinilkvesongunu(ay) {
                var ay = ay - 1;    // Neden bunu yaptım derseniz dropdownı doldurduğum metotta elemanların degerleri 0-11 değil 1-12 şeklinde veriliyor            
                var ayinIlkGunu = new Date(new Date().getFullYear(), ay, 1);
                var ayinSonGunu = new Date(new Date().getFullYear(), ay + 1, 0);              
                $("#txtMasrafTalepTarihi").val(tarihCevir0(ayinIlkGunu));         
            }

    function tarihCevir0(date) {
                try {
                    var yyyy = date.getFullYear();
                    var mm = date.getMonth() < 9 ? "0" + (date.getMonth() + 1) : (date.getMonth() + 1);
                    var dd = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
                    return dd + "." + mm + "." + yyyy;
                } catch (err) {
                    return "";
                }
            }

    <asp:DropDownList CssClass="form-control" onchange="Ayinilkvesongunu($(this).val())" ClientIDMode="Static" ID="ddlay" runat="server">

     <asp:TextBox ID="txtMasrafTalepTarihi" runat="server" ClientIDMode="Static" TextMode="Date" CssClass="form-control"></asp:TextBox>

    Ayın ilk ve son gününü elde ettim ve tarihcevir0 formatıyla 01.05.2016 şekilne çevirdim. Ama text mode date olduğu için basamıyorum. Datepicker a çevirmeyi denedim ama onda da basmadı ve sayfadaki asıl kod çalışmadı  . Textmode date li bir text box a basabilmem mümkün mü?







    8 Eylül 2016 Perşembe 08:08
  • yyyy-mm-dd formatında ve aralarına nokta değil de tire koyarak formatlarsan gösterecek

    return yyyy + "-" + mm + "-" + dd;


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    • Yanıt Olarak İşaretleyen Alican Kırma 8 Eylül 2016 Perşembe 08:47
    8 Eylül 2016 Perşembe 08:29
    Moderatör
  • Oldu teşekkür ederim herkese. Tam çözülmüş haliye bu şekilde. Sonradan ihtiyacı olanlar için.

    function tarihCevir0(date) {
                try {
                    var yyyy = date.getFullYear();
                    var mm = date.getMonth() < 9 ? "0" + (date.getMonth() + 1) : (date.getMonth() + 1);
                    var dd = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
                    return yyyy + "-" + mm + "-" + dd;
                } catch (err) {
                    return "";
                }
            }

               

    function Ayinilkvesongunu(ay) {
                var ay = ay - 1;   // Neden bunu yaptım derseniz dropdownı doldurduğum metotta elemanların degerleri 0-11 değil 1-12 şeklinde veriliyor                    
                var ayinIlkGunu = new Date(new Date().getFullYear(), ay, 1);
                var ayinSonGunu = new Date(new Date().getFullYear(), ay + 1, 0);         
                $("#txtMasrafTalepTarihi").val(tarihCevir0(ayinIlkGunu));
                $("#txtMasrafBitTarihi").val(tarihCevir0(ayinSonGunu));

            }

     <asp:DropDownList CssClass="form-control" onchange="Ayinilkvesongunu($(this).val())" ClientIDMode="Static" ID="ddlay" runat="server">

     <asp:TextBox ID="txtMasrafTalepTarihi" runat="server" ClientIDMode="Static" TextMode="Date" CssClass="form-control"></asp:TextBox>

    <asp:TextBox ID="txtMasrafBitTarihi" runat="server" ClientIDMode="Static"  CssClass="form-control" TextMode="Date"></asp:TextBox>


    8 Eylül 2016 Perşembe 08:46