2016-03-21 15 views
-1

php'de iki tarih arasında herhangi bir uydu veya güneş olup olmadığını kontrol etmek istiyorum.php iki tarih arasında bir hafta sonu olup olmadığını nasıl kontrol edilir?

$fromDate = '03/21/2016'; 
$toDate = '03/28/2016'; 

Burada başka bir çözüm denedim ama iyi çalışmadılar. Bunu laravel 5.2'de istiyorum. Eğer bunun için herhangi bir kolay yol varsa lütfen bana yol göster. Teşekkürler!

Güncelleme ben de hafta içi (Pazartesi-Cuma) iki tarih arasındaki varsa almak istiyorum . İhtiyacım var çünkü kullanıcı oturdu ve Pazar'ı sadece bu durumda kendimden hafta içi seçeneği gizlemek için bu yüzden seçebilirsiniz. Yani ihtiyacım olan şey, başlangıç ​​ve bitiş tarihlerinin hafta sonu ya da hafta içi ya da her ikisinde de olduğunu söyleyen bir yöntem.

cevap

1

Geçerli haftanın gününü almak için date("N")'u kullanabilir ve tarihler arasındaki günler arasındaki farkı ekleyebilirsiniz. Bu, 6'dan büyük ya da 6'ya eşitse veya bir tarihin hafta sonu olduğu bir tarih olsun.

//Get current day of week. For example Friday = 5 
$day_of_week = date("N", strtotime($fromDate)); 

$days = $day_of_week + (strtotime($toDate) - strtotime($fromDate))/(60*60*24) 
//strtotime(...) - convert a string date to unixtimestamp in seconds. 
//The difference between strtotime($toDate) - strtotime($fromDate) is the number of seconds between this 2 dates. 
//We divide by (60*60*24) to know the number of days between this 2 dates (60 - seconds, 60 - minutes, 24 - hours) 
//After that add the number of days between this 2 dates to day of week. So if first date is friday and days between this 2 dates is: 3 the sum will be 5+3 = 8 and it's bigger than 6 so we know it's a weekend between. 



if($days >= 6){ 
    //we have a weekend. Because day of week of first date + how many days between this 2 dates are greater or equal to 6 (6=Saturday) 
} else { 
    //we don't have a weekend 
} 
+0

işe yaradı. Teşekkürler! Lütfen çalıştığını açıklar mısın, böylece burada neler olduğunu anlayabiliyorum. –

+0

Bir sorunuz var, çözümünüz iki tarih arasında herhangi bir hafta sonu olup olmadığını söyler. iki tarih arasında hafta içi (mon-fri) varsa ne almak istersem? İhtiyacım var çünkü kullanıcı sadece oturumu ve Pazar'ı seçebiliyor, bu yüzden bu durumdan hafta içi seçeneği gizlemem gerekiyor. –

+0

@UmairMalik Cevabımı yorumlarla güncelledim, böylece daha iyi anlayabiliyorsunuz. Bir şey açık değilse bana bildirin. –

0

<?php 
    $is_weekend = 0; 
    $fromDate = strtotime('2016-03-21'); 
    $toDate = strtotime('2016-03-28'); 
    while (date("Y-m-d", $fromDate) != date("Y-m-d", $toDate)) { 
     $day = date("w", $fromDate); 
     if ($day == 0 || $day == 6) { 
      $is_weekend = 1; 
     } 
     $fromDate = strtotime(date("Y-m-d", $fromDate) . "+1 day"); 
    } 
    echo $is_weekend; 

yardımcı olur Çapa deneyin :)

İlgili konular