mendapatkan hari [SOLVED]

saya ingin bertanya bagaimana cara mendapatkan semua hari dalam 1 bulan tanpa hari sabtu dan minggu mohon bantuannya

avatar Nandar
@Nandar

648 Kontribusi 204 Poin

Diperbarui 7 tahun yang lalu

3 Jawaban:

Jawaban Terpilih

coba..

function FilterDate($start_date, $end_date, $expected_days)
{
    $hari = array(
      'Sunday' => 'Minggu',
      'Monday' => 'Senin',
      'Tuesday' => 'Selasa',
      'Wednesday' => 'Rabu',
      'Thursday' => 'Kamis',
      'Friday' => 'Jumat',
      'Saturday' => 'Sabtu'
    );

    $bulan = array(
      'January' => 'Januari',
      'January' => 'Januari',
      'February' => 'Februari',
      'March' => 'Maret',
      'April' => 'April',
      'May' => 'Mei',
      'June' => 'Juni',
      'July' => 'Juli',
      'August' => 'Agustus',
      'September' => 'September',
      'October' => 'Oktober',
      'November' => 'November',
      'Desember' => 'Desember',
    );

    $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[] = $hari[date('l', $start_timestamp)].', '.$bulan[date('F', $start_timestamp)].' '.date('Y', $start_timestamp);
        }
        $start_timestamp = strtotime('+1 day', $start_timestamp);
    }

    return $dates;
}

$start_date    = '2017-01-01';
$end_date      = '2017-01-31';
$expected_days = array('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday');
$result = FilterDate($start_date, $end_date, $expected_days);
print_r($result);

avatar gunalirezqimauludi
@gunalirezqimauludi

350 Kontribusi 243 Poin

Dipost 7 tahun yang lalu

Saya pake ini gan

$workdays = array();
$type = CAL_GREGORIAN;
$month = date('m'); // Month ID, 1 through to 12.
$year = date('Y'); // Year in 4 digit 2009 format.
$day_count = cal_days_in_month($type, $month, $year); // Get the amount of days
//$libur = array( [0] => 2, [1] => 6, [2] => 9, [3] => 10);

//loop through all days
for ($i = 1; $i <= $day_count; $i++) {

        $date = $year.'/'.$month.'/'.$i; //format date
        $get_name = date('l', strtotime($date)); //get week day
        $day_name = substr($get_name, 0, 3); // Trim day name to 3 chars

        //if not a weekend add day to array
        if($day_name != 'Sun' && $day_name != 'Sat'){
          if ($i != '10') {
            $workdays[] = $i;
          }

        }

}
print_r($workdays);

avatar Nandar
@Nandar

648 Kontribusi 204 Poin

Dipost 7 tahun yang lalu

tapi terimakasih gan

avatar Nandar
@Nandar

648 Kontribusi 204 Poin

Dipost 7 tahun yang lalu

Login untuk ikut Jawaban