Postingan lainnya
Bagaimana ambil data tanggal saat weekend pada range tanggal?
Saya punya beberapa variabel $date_start = 2018-03-01; $date_end = 2018-03-22;
Saya ingin mengambil data pada hari sabtu & minggu saja diantara tanggal itu dan memasukanya kedalam variabel seperti: $weekend = ('2018-03-03','2018-03-04','2018-03-16','2018-03-17')
Sebab saya ingin memasukan $weekend pada SQL Query ini: SELECT COUNT(in_hr) as count FROM `msabsensi` WHERE `nama`='$nama' AND date BETWEEN '$date_start' AND '$date_end' AND date IN ('$weekend')
Terimakasih.
0
4 Jawaban:
<?php
function isWeekend($start_date, $end_date, $expected_days) {
$start_timestamp = strtotime($start_date);
$end_timestamp = strtotime($end_date);
$dates = array();
while ($start_timestamp <= $end_timestamp) {
if (in_array(date('l', $start_timestamp), $expected_days)) {
$dates[] = date('Y-m-d', $start_timestamp);
}
$start_timestamp = strtotime('+1 day', $start_timestamp);
}
return $dates;
}
$start_date = '2018-03-01';
$end_date = '2018-03-31';
$expected_days = array('Saturday');
$weekend_dates = isWeekend($start_date, $end_date, $expected_days);
print_r($weekend_dates);
?>
1
Jawaban Terpilih
$date_start = '2018-03-01';
$date_end = '2018-03-22';
$selisih = '86400'; //selisih strtotime untuk satu hari
$time_start = strtotime($date_start);
$time_end = strtotime($date_end);
for ($i=$time_start; $i <= $time_end ; $i=$i+$selisih) {
//pengecekan apakah tanggal tersebut hari sabtu atau minggu
if((date('D', $i)=='Sun')OR(date('D', $i)=='Sat')){
$data[] = date('Y-m-d', $i); //hasil dalam bentuk array
}
}
print_r ($data);
2
semoga membantu
$adaysec = 24 * 3600;
$tgl1 = strtotime('2018-03-01');
$tgl2 = (strtotime('2018-03-22')) + $adaysec;
for ($i = $tgl1; $i < $tgl2; $i+=$adaysec) {
if (date("w", $i) == "0" or date("w", $i) == "6") { //sabtu / minggu
$weekend[] = date('Y-m-d', $i);
}
}
print_r($weekend);
1
Terimakasih semua atas bantuanya. problem solved.
0