{"id":15286637,"url":"https://github.com/afiqiqmal/esolat-malaysia","last_synced_at":"2025-10-07T01:31:05.782Z","repository":{"id":56941671,"uuid":"135649254","full_name":"afiqiqmal/Esolat-Malaysia","owner":"afiqiqmal","description":"Packagist for E-Waktu Solat in Malaysia. Data from Jakim ","archived":true,"fork":false,"pushed_at":"2018-10-09T08:59:32.000Z","size":82,"stargazers_count":10,"open_issues_count":0,"forks_count":6,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-24T17:47:32.086Z","etag":null,"topics":["api","composer","esolat","jakim","malaysia","packagist","php","scraping","solat","waktu-solat-api","waktu-solat-jakim","waktu-solat-malaysia"],"latest_commit_sha":null,"homepage":"https://packagist.org/packages/afiqiqmal/esolat-malaysia","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/afiqiqmal.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-06-01T00:41:14.000Z","updated_at":"2024-01-02T03:01:35.000Z","dependencies_parsed_at":"2022-08-21T07:50:26.880Z","dependency_job_id":null,"html_url":"https://github.com/afiqiqmal/Esolat-Malaysia","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/afiqiqmal%2FEsolat-Malaysia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/afiqiqmal%2FEsolat-Malaysia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/afiqiqmal%2FEsolat-Malaysia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/afiqiqmal%2FEsolat-Malaysia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/afiqiqmal","download_url":"https://codeload.github.com/afiqiqmal/Esolat-Malaysia/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235575693,"owners_count":19012156,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","composer","esolat","jakim","malaysia","packagist","php","scraping","solat","waktu-solat-api","waktu-solat-jakim","waktu-solat-malaysia"],"created_at":"2024-09-30T15:17:46.526Z","updated_at":"2025-10-07T01:31:00.480Z","avatar_url":"https://github.com/afiqiqmal.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# E-Solat Malaysia\n[![Build Status](https://travis-ci.org/afiqiqmal/Esolat-Malaysia.svg?branch=master)](https://travis-ci.org/afiqiqmal/Esolat-Malaysia)\n[![Coverage](https://img.shields.io/codecov/c/github/afiqiqmal/Esolat-Malaysia.svg)](https://codecov.io/gh/afiqiqmal/Esolat-Malaysia)\n[![Packagist](https://img.shields.io/packagist/dt/afiqiqmal/Esolat-Malaysia.svg)](https://packagist.org/packages/afiqiqmal/Esolat-Malaysia)\n[![Packagist](https://img.shields.io/packagist/v/afiqiqmal/Esolat-Malaysia.svg)](https://packagist.org/packages/afiqiqmal/Esolat-Malaysia)\n\nA Packagist for Malaysia E-solat Time table. Fully Scraped from [Jakim](www.e-solat.gov.my)\n\nTested in PHP 7.1 Only\n\n## Installation\n\n#### Step 1: Install from composer\n```\ncomposer require afiqiqmal/esolat-malaysia\n```\nAlternatively, you can specify as a dependency in your project's existing composer.json file\n```\n{\n   \"require\": {\n      \"afiqiqmal/esolat-malaysia\": \"^1.0\"\n   }\n}\n```\n\n## Usage\nAfter installing, you need to require Composer's autoloader and add your code.\n\n```php\nrequire_once __DIR__ .'/../vendor/autoload.php';\n```\n\nRefer this for [Location Code](https://github.com/afiqiqmal/Esolat-Malaysia/blob/master/location_guide.md)\n\n#### Sample\n```php\n$data = esolat()\n        -\u003etimeline()\n        -\u003ezone('PNG01')\n        -\u003edisplayAs(Period::WEEK)\n        -\u003efetch();\n```\n\nor Replace with\n```php\n$data = (new WaktuSolat())\n        -\u003ezone('PNG01')\n        -\u003edisplayAs(Period:WEEK)\n        -\u003efetch();\n```\n\n#### Sample for Day\n```php\n$response = esolat()\n        -\u003etimeline()\n        -\u003ezone('PNG01') // P1 or PNG01\n        -\u003edisplayAs(Period::DAY)\n        -\u003esetDate('2018-10-10') // if this is not set, it will automatically get current date\n        -\u003efetch();\n```\n\n#### Sample for Today\n```php\n$response = esolat()\n        -\u003etimeline()\n        -\u003ezone('PNG01') // P1 or PNG01\n        -\u003edisplayAs(Period::TODAY)\n        -\u003efetch();\n```\n\n#### Sample for Current Week\n```php\n$response = esolat()\n        -\u003etimeline()\n        -\u003ezone('PNG01') // P1 or PNG01\n        -\u003edisplayAs(Period::Week)\n        -\u003esetDate('2018-10-10') //if this is set, it will display the date range of startof week to end of week of the date\n        -\u003efetch();\n```\n\n#### Sample for Month\n```php\n$data = esolat()\n        -\u003etimeline()\n        -\u003ezone('P1') // P1 or PNG01\n        -\u003edisplayAs(Period::Month)\n        -\u003emonth(4)\n        -\u003efetch();\n```\n\n#### Sample for Year\n```php\n$data = esolat()\n        -\u003etimeline()\n        -\u003ezone('PNG01') // P1 or PNG01\n        -\u003edisplayAs(Period::Year)\n        -\u003efetch();\n```\n\n#### Want to search by Coordinate?\n- Just replace `zone()` with `locationProvider()`. For Example:\n```php\n$data = esolat()\n        -\u003etimeline()\n        -\u003elocationProvider(6.6626, 100.3217, GOOGLE API KEY)\n        -\u003edisplayAs(Period::Year)\n        -\u003efetch();\n```\nTo get Only the Address Location\n```php\n$location = (new LocationProvider())\n            -\u003esetGoogleMapKey($key)\n            -\u003esetCoordinate($latitude, $longitude)\n            -\u003efetch(); // Return ZoneData model\n            \n$location-\u003egetCode(); //R1            \n$location-\u003egetJakimCode(); //PLS01            \n$location-\u003egetState(); //Perlis            \n$location-\u003egetZone(); //Padang Besar            \n$location-\u003etoObject(); //return Object           \n$location-\u003etoArray(); //return Array           \n```\n\n#### Type of Display\n- Period::Day\n- Period::Today\n- Period::Week\n- Period::Month\n- Period::Year\n\n\n#### Get Location List By State\n```php\n$data = esolat()-\u003egetLocations(); //return all\n$data = esolat()-\u003egetLocations('negeri sembilan');\n//or\n$data = Location::getLocations($state);\n```\n\n#### Get Location By Code\n```php\n$data = esolat()-\u003egetLocationByCode('PLS01');\n$data = esolat()-\u003egetLocationByCode('R1');\n//or\n$data = Location::getLocationByCode($code);\n```\n\n### Extra Usage\n* `$adjustment` - By default is -2 day to fit with Malaysia Zone Date\n##### Convert Date to Hijri Date\n```php\n$date = esolat()-\u003edate_to_hijri(\\Carbon\\Carbon::now(), $adjustment); // Return IslamicCarbon\n$date-\u003etoDateIslamicString(); // 17-Ramadhan-1439\n$date-\u003emonth; // 9\n$date-\u003eyear; // 1439\n$date-\u003eday; // 17\n$date-\u003eislamic_month; // Ramadhan\n```\n\n##### Convert Hijri Date to Date\n```php\n$date = esolat()-\u003ehijri_to_date(17, 9, 1439, $adjustment); // Return Carbon\n```\n\n#### Get List of Nearby Mosque\n```php\n$data = esolat()-\u003egetNearbyMosque(2.9474,101.8451, \"GOOGLE API\", \"RADIUS ex: 10000\");\n// or\n$data = (new NearbyProvider(\"AIzaSyA6bZ53e_RhxutbU54IMY_qBB6T9A-iGxQ\"))\n    -\u003egetNearbyLocation('mosque', 2.9474,101.8451);\n```\n\n### Result\nYou should getting data similarly like SAMPLE below:\n```json\n{\n    \"code\": 200,\n    \"error\": false,\n    \"data\": {\n        \"bearing\":\"291° 2′ 45″\",\n        \"location\":{\n            \"state\":\"Perlis\",\n            \"zone\":\"Padang Besar\",\n            \"jakim_code\":\"PLS01\",\n            \"code\":\"R2\",\n            \"longitude\":100.3217,\n            \"latitude\":6.6626\n        },\n        \"timeline\":[\n            {\n                \"hijri_date\":\"1439-9-20\",\n                \"date\":\"2018-06-04\",\n                \"day\":\"Monday\",\n                \"waktu\":{\n                    \"imsak\":1528090140,\n                    \"subuh\":1528090740,\n                    \"syuruk\":1528095780,\n                    \"zohor\":1528118340,\n                    \"asar\":1528130700,\n                    \"maghrib\":1528140780,\n                    \"isyak\":1528145280\n                }\n            },\n            {\n                \"hijri_date\":\"1439-9-21\",\n                \"date\":\"2018-06-05\",\n                \"day\":\"Tuesday\",\n                \"waktu\":{\n                    \"imsak\":1528176540,\n                    \"subuh\":1528177140,\n                    \"syuruk\":1528182180,\n                    \"zohor\":1528204740,\n                    \"asar\":1528217100,\n                    \"maghrib\":1528227180,\n                    \"isyak\":1528231740\n                }\n            },\n            {\n                \"hijri_date\":\"1439-9-22\",\n                \"date\":\"2018-06-06\",\n                \"day\":\"Wednesday\",\n                \"waktu\":{\n                    \"imsak\":1528262940,\n                    \"subuh\":1528263540,\n                    \"syuruk\":1528268580,\n                    \"zohor\":1528291200,\n                    \"asar\":1528303500,\n                    \"maghrib\":1528313580,\n                    \"isyak\":1528318140\n                }\n            },\n            {\n                \"hijri_date\":\"1439-9-23\",\n                \"date\":\"2018-06-07\",\n                \"day\":\"Thursday\",\n                \"waktu\":{\n                    \"imsak\":1528349340,\n                    \"subuh\":1528349940,\n                    \"syuruk\":1528354980,\n                    \"zohor\":1528377600,\n                    \"asar\":1528389900,\n                    \"maghrib\":1528399980,\n                    \"isyak\":1528404540\n                }\n            },\n            {\n                \"hijri_date\":\"1439-9-24\",\n                \"date\":\"2018-06-08\",\n                \"day\":\"Friday\",\n                \"waktu\":{\n                    \"imsak\":1528435740,\n                    \"subuh\":1528436340,\n                    \"syuruk\":1528441380,\n                    \"zohor\":1528464000,\n                    \"asar\":1528476360,\n                    \"maghrib\":1528486440,\n                    \"isyak\":1528491000\n                }\n            },\n            {\n                \"hijri_date\":\"1439-9-25\",\n                \"date\":\"2018-06-09\",\n                \"day\":\"Saturday\",\n                \"waktu\":{\n                    \"imsak\":1528522200,\n                    \"subuh\":1528522800,\n                    \"syuruk\":1528527840,\n                    \"zohor\":1528550400,\n                    \"asar\":1528562760,\n                    \"maghrib\":1528572840,\n                    \"isyak\":1528577400\n                }\n            },\n            {\n                \"hijri_date\":\"1439-9-26\",\n                \"date\":\"2018-06-10\",\n                \"day\":\"Sunday\",\n                \"waktu\":{\n                    \"imsak\":1528608600,\n                    \"subuh\":1528609200,\n                    \"syuruk\":1528614240,\n                    \"zohor\":1528636800,\n                    \"asar\":1528649160,\n                    \"maghrib\":1528659240,\n                    \"isyak\":1528663800\n                }\n            }\n        ]\n    },\n    \"generated_at\": \"2018-06-02 12:58:40\",\n    \"footer\": {\n        \"source\": \"http://www.e-solat.gov.my/web/\",\n        \"host\": \"JAKIM\",\n        \"developer\": {\n            \"name\": \"Hafiq\",\n            \"homepage\": \"https://github.com/afiqiqmal\"\n        }\n    }\n}\n```\n\n### Result for location list\nYou should getting data similarly like below:\n```json\n{\n    \"code\": 200,\n    \"error\": false,\n    \"data\": [\n        {\n            \"state\": \"Negeri Sembilan\",\n            \"zone\": \"Jempol\",\n            \"jakim_code\": \"NGS01\",\n            \"code\": \"N1\"\n        },\n        {\n            \"state\": \"Negeri Sembilan\",\n            \"zone\": \"Tampin\",\n            \"jakim_code\": \"NGS01\",\n            \"code\": \"N2\"\n        },\n        {\n            \"state\": \"Negeri Sembilan\",\n            \"zone\": \"Port Dickson\",\n            \"jakim_code\": \"NGS02\",\n            \"code\": \"N3\"\n        },\n        {\n            \"state\": \"Negeri Sembilan\",\n            \"zone\": \"Seremban\",\n            \"jakim_code\": \"NGS02\",\n            \"code\": \"N4\"\n        },\n        {\n            \"state\": \"Negeri Sembilan\",\n            \"zone\": \"Kuala Pilah\",\n            \"jakim_code\": \"NGS02\",\n            \"code\": \"N5\"\n        },\n        {\n            \"state\": \"Negeri Sembilan\",\n            \"zone\": \"Jelebu\",\n            \"jakim_code\": \"NGS02\",\n            \"code\": \"N6\"\n        },\n        {\n            \"state\": \"Negeri Sembilan\",\n            \"zone\": \"Rembau\",\n            \"jakim_code\": \"NGS02\",\n            \"code\": \"N7\"\n        }\n    ],\n    \"generated_at\": \"2018-05-31 15:35:15\",\n    \"footer\": {\n        \"source\": \"http://www.e-solat.gov.my/web/\",\n        \"host\": \"JAKIM\",\n        \"developer\": {\n            \"name\": \"Hafiq\",\n            \"homepage\": \"https://github.com/afiqiqmal\"\n        }\n    }\n}\n```\n\n## Issue\n- If Issue happen like the api always return empty [] after cross check with real site, just let me know =)\n\n## ChangeLog\n- See changelog.md\n\n## TODO\n- Get waktu solat by coordinate\n\n## Credit\n- Jakim\n- Location Extra - Malaysia Prayer Times (mpt)\n\n## License\nLicensed under the [MIT license](http://opensource.org/licenses/MIT)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fafiqiqmal%2Fesolat-malaysia","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fafiqiqmal%2Fesolat-malaysia","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fafiqiqmal%2Fesolat-malaysia/lists"}