v2.5.2
Giriş yap

Özel tarih ve günde div'in aktif olması

erdal42
448 defa görüntülendi ve 1 kişi tarafından değerlendirildi

Merhabalar,
ALışveriş sitem için örneğin 27 Ekim ayı ve gününe gelindiğine otomatik olarak çalıştırak istediğim bir div'i aktif etmesini isteyeceğim. Nasıl yapabiliriz ?

ebykdrms
756 gün önce

Diyelim ki PHP ile şu şekilde tarihleri tutuyorsunuz:

$activeDates = [
    '2022-10-29',
    '2022-1-1',
    '2023-4-23',
    '2023-5-19',
];

Şimdi bugünün yukarıdaki tarihlerden biri olup olmadığını bulalım.

// Önce bugünün tarihini alalım:
$today = date("Y-m-d");

// Henüz kontrol sağlamadan önce, bugünün aktif gün olup olmadığını tutacak değişkene false verelim:
$isTodayActive = false;

// Şimdi tüm aktif günlere tek tek bakmak için bir döngü oluşturalım:
foreach($activeDates as $date) {
    
    // Döngünün baktığımız elemanı ile bugün aynı mı?
    if($date == $today) {
        // Aynıysa bugünün aktif olduğunu belirten değişkenimizi true yapalım.
        $isTodayActive = true;
        
        // Ve döngünün sonraki tarihlere bakmadan sonlanmasını sağlayalım.
        break;
    }
}

Artık $isTodayActive değişkenimiz true ise bugünün özel günlerden biri olduğunu anlayabiliyoruz.
Bu durumda DOM'daki ilgili elementimizin $isTodayActive değerine göre gösterilmesini/gösterilmemesini sağlayabiliriz.

<?php if($isTodayActive===true) { ?>
    <a href="ornek.html">
        <div class="ozelgunlerlinki">
            Bu fırsatı kaçırmayın ! (resimler vs olacak)
        </div>
    </a>
<?php } ?>

Siz diyebilirsiniz ki:
"Özel tarih olunca anlayalım ama aynı zamanda bu özel tarihin adını da ekrana yazmak istersek ne yapabiliriz?"
Bu durumda $activeDates değişkenimizi biraz daha geliştirmemiz gerekir:

$activeDates = [
    ['2022-10-29', 'Cumhuriyet Bayramı'],
    ['2022-1-1', 'Yılbaşı'],
    ['2023-4-23', 'Ulusal Egemenlik ve Çocuk Bayramı'],
    ['2023-5-19', 'Gençlik ve Spor Bayramı'],
];

Böylece 2 boyutlu bir dizi oluşturmuş olduk.
Şimdi bugünün aktif olup olmadığını tutan değişkenimize true veya false atamak yerine, bugün eğer özel günlerden biriyse bu özel günün ne olduğunu yazalım.

// Önce bugünün tarihini alalım:
$today = date("Y-m-d");

// Henüz kontrol sağlamadan önce, bugünün aktif gün olup olmadığını tutacak değişkene boş string ("") verelim:
$isTodayActive = "";

// Şimdi tüm aktif günlere tek tek bakmak için bir döngü oluşturalım:
foreach($activeDates as $date) {
    
    // Döngünün baktığımız elemanı ile bugün aynı mı?
    if($date[0] == $today) {
        // Aynıysa bugünün aktif olduğunu belirten değişkenimize o günün verisini tutan dizinin 2. elemanını verelim.
        $isTodayActive = $date[1];
        
        // Ve döngünün sonraki tarihlere bakmadan sonlanmasını sağlayalım.
        break;
    }
}

Böylece eğer bugün özel günlerden biriyse $isTodayActive değişkeninde o günün adı yazıyor. Eğer değilse bu değişken boş string olarak kalmış demektir. Bu durumu if içinde kontrol edebiliriz.

<?php if($isTodayActive!=="") { ?>
    <a href="ornek.html">
        <div class="ozelgunlerlinki">
            <?= $isTodayActive ?> gününe özel bu fırsatı kaçırmayın ! (resimler vs olacak)
        </div>
    </a>
<?php } ?>