Yandex Metrica
JavaScript Tarih Dönüştürme ve Sıralama İşlemi - Yasin Sunmaz

Yasin Sunmaz

Kodladıkça değişen bir dünya...

JavaScript Tarih Dönüştürme ve Sıralama İşlemi

07.03.2022 yasinsunmaz 1555 0

Verilerimiz bazen farklı farklı tablolar üzerinden alınarak bir araya geldiğinde anlam kazanır. Farklı tablolardan veri almamız sonucunda bazı işlemleri yapmak zor olabilir ya da bu durum performansı etkileyebilir. Bunun için en son hazır veri üzerinden JS ile bazı işlemleri yapmamız daha basit ve hızlı çözümler üretmemizi sağlar. Ben yaşadığım bir durum üzerinden anlatmak istiyorum. Mevcut yapmak istediğim olay tarihleri eskiden en yeniye olacak şekilde sıralamak. Boş olan tarih verisi de en sonda olması gerekiyor. Şimdi bu durum göz önüne alındığında kullanıcı listesinde tarih bilgisi var. Fakat bu tarih bilgisi başka başka tablolar üzerinden gelmekte. Durum bu olunca aklıma ilk gelen çözüm olan JS ile sıralama işlemi yapmayı düşündüm.

Problem

Ama bu veri listesinde ilk sorun tarih değeri string olarak geliyor olması. Sonraki sorun ise bazı tarihlerin sonunda saat bilgisinin olması. Saat bilgisi olduğunda yanlış sıralamaya sebep oluyor. Şimdi bu durumları nasıl çözdüğümü bir bakalım.

Çözüm

Sıralama işlemi yapabilmek için veri listesi içinde tarihleri birbirleri ile karşılaştırmamız gerekiyor. Bunun için ilk tarih bilgisi için firstDate ve ikinci tarih bilgisi için de secondDate tanımlamaları yaptım. Gelen tarih bilgisinde her ikisi için de replace ile 00:00 değerinin olması halinde bunu boş olarak değiştirme işlemi yaptım. Yeni tarih değeri için firstEndsOn ve secondEndsOn tanımlaması yaptım. Sonrasında ise tarih bilgisine split yardımı ile parçaladım. Döngüye sokarak her değeri gün , ay ve yıl olacak şekilde atadım. İkinci tarih bilgisi için de aynı şeyi yaptım. Tarih için gün, ay ve yıl parametrelerini birleştirerek tarih formatında istediğim yeni bir tarih değerine ulaştım.

Son olarak:

if (firstNewDate < secondNewDate) { return -1; }

if (firstNewDate > secondNewDate) { return 1; }

satırları ile sıralama işlemini tamamlamış oldum. Sayfanızda gerekli yer için bu şekilde bir mantık ile sıralamanızı yapabilirsiniz.

 userList.sort(function (firstDate, secondDate) {
            if (firstDate.EndsOn != "" || secondDate.EndsOn != "") {
              //Saat bilgisini kaldırma
              firstEndsOn = firstDate.EndsOn.replace(" 00:00", "");
              secondEndsOn = secondDate.EndsOn.replace(" 00:00", "");
              //Noktaya göre tarihi parçalama işlemi
              var firstSplit = firstEndsOn.split(".");
              var fDD;
              var fMM;
              var fYYYY;
              //Tarih dizisini döngüye sokup gün, ay ve yıl atamasını yaptık
              for (i = 0; i < firstSplit.length; i++) {
                if (i == 0)
                  fDD = firstSplit[i];
                if (i == 1)
                  fMM = firstSplit[i];
                if (i == 2)
                  fYYYY = firstSplit[i];
              }
              //Elde edilen parametreler ile tarih formatı oluşturma
              var firstNewDate = fYYYY + "/" + fMM + "/" + fDD;

              var secondSplit = secondEndsOn.split(".");
              var sDD;
              var sMM;
              var sYYYY;
              for (i = 0; i < secondSplit.length; i++) {
                if (i == 0)
                  sDD = secondSplit[i];
                if (i == 1)
                  sMM = secondSplit[i];
                if (i == 2)
                  sYYYY = secondSplit[i];
              }
              var secondNewDate = sYYYY + "/" + sMM + "/" + sDD;
              //İki tarih arasında sıralama yapma
              if (firstNewDate < secondNewDate) { return -1; }
              if (firstNewDate > secondNewDate) { return 1; }
            }
            return 0;
          });

Umarım faydalı olmuştur. İyi çalışmalar dilerim.

  • Yorum yapabilmek için giriş yapmalısınız. Giriş yapmak için tıklayınız.

Diğer Yazılar

SASS ve SCSS Nedir? Nasıl Kullanılır?

19.06.2023 yasinsunmaz 330 0

Bu yazımda CSS'in genişletilmiş bir versiyonu olan SASS (Syntactically Awesome Style Sheets)'ı ele alacağım. CSS yazma deneyimini geliştiren ve stil tabanlı projelerde daha...

En İyi Çevrimiçi CSS Gölge Oluşturucu Araçları

26.12.2022 yasinsunmaz 305 0

Web tasarımı söz konusu olduğunda, gölgeler sayfalarınıza çok fazla derinlik ve boyut katabilir. Ama ne yazık ki, gölgeler oluşturmak biraz zor olabilir....

JavaScript İle Url Href Alma ve Href Bilgisini Değiştirme

12.03.2022 yasinsunmaz 3729 0

HTML sayfalarımızda bir tetikleme sonucunda ya da sayfa yüklendiğinde a href bilgisini değiştirmeye ihtiyacımız olabiliyor. Java Script ile HTML'de a href bilgisini değişt...

En İyi CSS Hileleri ve Oluşturucuları

30.09.2020 yasinsunmaz 1793 0

Web site tasarlarken değişik tasarımlara ihtiyaç duyulmaktadır. Tasarımlarımızı CSS ile yapıyoruz. Fakat bazı durumlarda istediğimiz sonucu alabilmek için olduk&ccedi...

Geliştiriciler İçin En İyi 13 Online JSON Araçları

19.06.2022 yasinsunmaz 1123 0

Geliştiriciler için JSON veri tepi sıkça kullanılmakta. Durum böyle olunca zaman zaman hem görsel hem de daha düzgün görünmesi iç...

Visual Studio ESLint Expected Java Script Hatası Çözümü

21.04.2019 yasinsunmaz 2966 0

Merhaba arkadaşlar bu yazımda sizlere Microsoft Visual Studio'da karşılaşabileceğiniz Error eqeqeq (ESLint) Expected '===' and instead saw '=='. hatas...

JQuery İle Data Attribute Değerini Değiştirme

08.04.2019 yasinsunmaz 2710 0

Bu yazımda HTML 5'de sıkça kullanılan data attritube özelliğindeki data değerini değiştirmeyi anlatacağım. Data attritube özelliğini HTML'deki elemanl...