Postingan lainnya
Buku Ini Koding!
Baru!
Buku ini akan jadi teman perjalanan kamu belajar sampai dapat kerjaan di dunia programming!
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.
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);
?>
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);
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);
Terimakasih semua atas bantuanya. problem solved.