src/Transformatika/Utility/Fn.php
public static function dateRangeInWeek($week = 0, $year = 0)
    {
        /*
          Fungsi ini untuk mendapatkan nilai tanggal berapa saja dalam minggu tertentu
          Tanggal dimulai pada hari senin pada minggu tersebut.
          returned type: array
         */
        $year = (int)$year;
        $week = (int)$week;
        if ($year < 1970) { // minimal unix time year 1970
            $year = date("Y");
            $week = date("W");
        }
        if ($week <= 0 || $week > 54) {
            $week = date("W");
            $year = date("Y");
        }
        //cek apakah tanggal 1 masuk minggu pertama atau minggu terakhir tahun sebelumnya
        $mingguTanggalAwalTahun   = date("W", mktime(1, 0, 0, 1, 1, $year));
        $jumlahDetikDalamSehari   = 24 * 60 * 60;
        $jumlahDetikDalamSeminggu = $jumlahDetikDalamSehari * 7;
        $hariAwalTahun            = date("w", mktime(1, 0, 0, 1, 1, $year));
        // Hari ke 0/7->minggu 1->Senin 2->Selasa 3->Rabu 4->Kamis 5->Jumat 6->Sabtu
        $detikAwalTahun = date("U", mktime(1, 0, 0, 1, 1, $year));
        if ($hariAwalTahun == 0) {
            $hariAwalTahun = 7; // ISO-8601 numeric representation
        }
        $jumlahHariPadaMingguPertama = (7 - $hariAwalTahun) + 1; //Long variable name but easily understood :P
        $detikTambahan               = (($week - 1) * $jumlahDetikDalamSeminggu) + ($jumlahHariPadaMingguPertama * $jumlahDetikDalamSehari);
        if ($mingguTanggalAwalTahun == 1) {
            $tanggalUnixSenin = $detikAwalTahun + $detikTambahan;
        } else {
            $tanggalUnixSenin = $detikAwalTahun + $detikTambahan + $jumlahDetikDalamSeminggu;
        }
        $dateRange = array();
        for ($i = 1; $i <= 7; $i++) {
            $dateRange[$i] = date("Y-m-d", ($tanggalUnixSenin + (($i - 1) * $jumlahDetikDalamSehari) - $jumlahDetikDalamSeminggu));
        }

        return $dateRange;
    }
public static function dateRangeInWeek($week = 0, $year = 0)
    {
        /*
          Fungsi ini untuk mendapatkan nilai tanggal berapa saja dalam minggu tertentu
          Tanggal dimulai pada hari senin pada minggu tersebut.
          returned type: array
         */
        $year = (int)$year;
        $week = (int)$week;
        if ($year < 1970) { // minimal unix time year 1970
            $year = date("Y");
            $week = date("W");
        }
        if ($week <= 0 || $week > 54) {
            $week = date("W");
            $year = date("Y");
        }
        //cek apakah tanggal 1 masuk minggu pertama atau minggu terakhir tahun sebelumnya
        $mingguTanggalAwalTahun   = date("W", mktime(1, 0, 0, 1, 1, $year));
        $jumlahDetikDalamSehari   = 24 * 60 * 60;
        $jumlahDetikDalamSeminggu = $jumlahDetikDalamSehari * 7;
        $hariAwalTahun            = date("w", mktime(1, 0, 0, 1, 1, $year));
        // Hari ke 0/7->minggu 1->Senin 2->Selasa 3->Rabu 4->Kamis 5->Jumat 6->Sabtu
        $detikAwalTahun = date("U", mktime(1, 0, 0, 1, 1, $year));
        if ($hariAwalTahun == 0) {
            $hariAwalTahun = 7; // ISO-8601 numeric representation
        }
        $jumlahHariPadaMingguPertama = (7 - $hariAwalTahun) + 1; //Long variable name but easily understood :P
        $detikTambahan               = (($week - 1) * $jumlahDetikDalamSeminggu) + ($jumlahHariPadaMingguPertama * $jumlahDetikDalamSehari);
        if ($mingguTanggalAwalTahun == 1) {
            $tanggalUnixSenin = $detikAwalTahun + $detikTambahan;
        } else {
            $tanggalUnixSenin = $detikAwalTahun + $detikTambahan + $jumlahDetikDalamSeminggu;
        }
        $dateRange = array();
        for ($i = 1; $i <= 7; $i++) {
            $dateRange[$i] = date("Y-m-d", ($tanggalUnixSenin + (($i - 1) * $jumlahDetikDalamSehari) - $jumlahDetikDalamSeminggu));
        }

        return $dateRange;
    }
public static function dateRangeInWeek ( $ week = 0 , $ year = 0 ) { /*
          Fungsi ini untuk mendapatkan nilai tanggal berapa saja dalam minggu tertentu
          Tanggal dimulai pada hari senin pada minggu tersebut.
          returned type: array
         */ $ year = ( int ) $ year ; $ week = ( int ) $ week ; if ( $ year < 1970 ) { // minimal unix time year 1970
 $ year = date ( "Y" ) ; $ week = date ( "W" ) ; } if ( $ week <= 0 || $ week > 54 ) { $ week = date ( "W" ) ; $ year = date ( "Y" ) ; } //cek apakah tanggal 1 masuk minggu pertama atau minggu terakhir tahun sebelumnya
 $ mingguTanggalAwalTahun = date ( "W" , mktime ( 1 , 0 , 0 , 1 , 1 , $ year ) ) ; $ jumlahDetikDalamSehari = 24 * 60 * 60 ; $ jumlahDetikDalamSeminggu = $ jumlahDetikDalamSehari * 7 ; $ hariAwalTahun = date ( "w" , mktime ( 1 , 0 , 0 , 1 , 1 , $ year ) ) ; // Hari ke 0/7->minggu 1->Senin 2->Selasa 3->Rabu 4->Kamis 5->Jumat 6->Sabtu
 $ detikAwalTahun = date ( "U" , mktime ( 1 , 0 , 0 , 1 , 1 , $ year ) ) ; if ( $ hariAwalTahun == 0 ) { $ hariAwalTahun = 7 ; // ISO-8601 numeric representation
 } $ jumlahHariPadaMingguPertama = ( 7 - $ hariAwalTahun ) + 1 ; //Long variable name but easily understood :P
 $ detikTambahan = ( ( $ week - 1 ) * $ jumlahDetikDalamSeminggu ) + ( $ jumlahHariPadaMingguPertama * $ jumlahDetikDalamSehari ) ; if ( $ mingguTanggalAwalTahun == 1 ) { $ tanggalUnixSenin = $ detikAwalTahun + $ detikTambahan ; } else { $ tanggalUnixSenin = $ detikAwalTahun + $ detikTambahan + $ jumlahDetikDalamSeminggu ; } $ dateRange = array ( ) ; for ( $ i = 1 ; $ i <= 7 ; $ i ++ ) { $ dateRange [ $ i ] = date ( "Y-m-d" , ( $ tanggalUnixSenin + ( ( $ i - 1 ) * $ jumlahDetikDalamSehari ) - $ jumlahDetikDalamSeminggu ) ) ; } return $ dateRange ; }
Date Range In Week
@param  integer
@param  integer
@return Array
Date Range In Week