afiqiqmal / esolat-malaysia
此包已被弃用且不再维护。未建议替换包。
马来西亚电子祷告时间表
3.1
2018-10-09 08:58 UTC
Requires
- php: >=7.0
- geocoder-php/cache-provider: ^4.1
- geocoder-php/google-maps-provider: ^4.2
- guzzlehttp/guzzle: ^6.3
- nesbot/carbon: 1.25.*
- php-http/guzzle6-adapter: ^1.1
- php-http/message: ^1.6
- symfony/css-selector: ^4.0
- symfony/dom-crawler: ^4.0
Requires (Dev)
- phpunit/phpunit: ~5.7
This package is auto-updated.
Last update: 2020-01-30 17:11:16 UTC
README
马来西亚电子祷告时间表的Packagist。完全来自 Jakim
仅在PHP 7.1上测试
安装
步骤1:从composer安装
composer require afiqiqmal/esolat-malaysia
或者,您可以在项目中现有的composer.json文件中将它指定为依赖项
{
"require": {
"afiqiqmal/esolat-malaysia": "^1.0"
}
}
使用方法
安装后,您需要要求Composer的自动加载并添加您的代码。
require_once __DIR__ .'/../vendor/autoload.php';
请参阅此处的 位置代码
示例
$data = esolat() ->timeline() ->zone('PNG01') ->displayAs(Period::WEEK) ->fetch();
或者替换为
$data = (new WaktuSolat()) ->zone('PNG01') ->displayAs(Period:WEEK) ->fetch();
每日示例
$response = esolat() ->timeline() ->zone('PNG01') // P1 or PNG01 ->displayAs(Period::DAY) ->setDate('2018-10-10') // if this is not set, it will automatically get current date ->fetch();
今日示例
$response = esolat() ->timeline() ->zone('PNG01') // P1 or PNG01 ->displayAs(Period::TODAY) ->fetch();
本周示例
$response = esolat() ->timeline() ->zone('PNG01') // P1 or PNG01 ->displayAs(Period::Week) ->setDate('2018-10-10') //if this is set, it will display the date range of startof week to end of week of the date ->fetch();
本月示例
$data = esolat() ->timeline() ->zone('P1') // P1 or PNG01 ->displayAs(Period::Month) ->month(4) ->fetch();
本年示例
$data = esolat() ->timeline() ->zone('PNG01') // P1 or PNG01 ->displayAs(Period::Year) ->fetch();
想通过坐标搜索吗?
- 只需将
zone()
替换为locationProvider()
。例如
$data = esolat() ->timeline() ->locationProvider(6.6626, 100.3217, GOOGLE API KEY) ->displayAs(Period::Year) ->fetch();
仅获取地址位置
$location = (new LocationProvider()) ->setGoogleMapKey($key) ->setCoordinate($latitude, $longitude) ->fetch(); // Return ZoneData model $location->getCode(); //R1 $location->getJakimCode(); //PLS01 $location->getState(); //Perlis $location->getZone(); //Padang Besar $location->toObject(); //return Object $location->toArray(); //return Array
显示类型
- Period::Day
- Period::Today
- Period::Week
- Period::Month
- Period::Year
按州获取位置列表
$data = esolat()->getLocations(); //return all $data = esolat()->getLocations('negeri sembilan'); //or $data = Location::getLocations($state);
通过代码获取位置
$data = esolat()->getLocationByCode('PLS01'); $data = esolat()->getLocationByCode('R1'); //or $data = Location::getLocationByCode($code);
额外使用
$adjustment
- 默认为 -2 天,以适应马来西亚时区日期
将日期转换为希吉拉日期
$date = esolat()->date_to_hijri(\Carbon\Carbon::now(), $adjustment); // Return IslamicCarbon $date->toDateIslamicString(); // 17-Ramadhan-1439 $date->month; // 9 $date->year; // 1439 $date->day; // 17 $date->islamic_month; // Ramadhan
将希吉拉日期转换为日期
$date = esolat()->hijri_to_date(17, 9, 1439, $adjustment); // Return Carbon
获取附近清真寺列表
$data = esolat()->getNearbyMosque(2.9474,101.8451, "GOOGLE API", "RADIUS ex: 10000"); // or $data = (new NearbyProvider("AIzaSyA6bZ53e_RhxutbU54IMY_qBB6T9A-iGxQ")) ->getNearbyLocation('mosque', 2.9474,101.8451);
结果
您应该得到类似以下的数据
{ "code": 200, "error": false, "data": { "bearing":"291° 2′ 45″", "location":{ "state":"Perlis", "zone":"Padang Besar", "jakim_code":"PLS01", "code":"R2", "longitude":100.3217, "latitude":6.6626 }, "timeline":[ { "hijri_date":"1439-9-20", "date":"2018-06-04", "day":"Monday", "waktu":{ "imsak":1528090140, "subuh":1528090740, "syuruk":1528095780, "zohor":1528118340, "asar":1528130700, "maghrib":1528140780, "isyak":1528145280 } }, { "hijri_date":"1439-9-21", "date":"2018-06-05", "day":"Tuesday", "waktu":{ "imsak":1528176540, "subuh":1528177140, "syuruk":1528182180, "zohor":1528204740, "asar":1528217100, "maghrib":1528227180, "isyak":1528231740 } }, { "hijri_date":"1439-9-22", "date":"2018-06-06", "day":"Wednesday", "waktu":{ "imsak":1528262940, "subuh":1528263540, "syuruk":1528268580, "zohor":1528291200, "asar":1528303500, "maghrib":1528313580, "isyak":1528318140 } }, { "hijri_date":"1439-9-23", "date":"2018-06-07", "day":"Thursday", "waktu":{ "imsak":1528349340, "subuh":1528349940, "syuruk":1528354980, "zohor":1528377600, "asar":1528389900, "maghrib":1528399980, "isyak":1528404540 } }, { "hijri_date":"1439-9-24", "date":"2018-06-08", "day":"Friday", "waktu":{ "imsak":1528435740, "subuh":1528436340, "syuruk":1528441380, "zohor":1528464000, "asar":1528476360, "maghrib":1528486440, "isyak":1528491000 } }, { "hijri_date":"1439-9-25", "date":"2018-06-09", "day":"Saturday", "waktu":{ "imsak":1528522200, "subuh":1528522800, "syuruk":1528527840, "zohor":1528550400, "asar":1528562760, "maghrib":1528572840, "isyak":1528577400 } }, { "hijri_date":"1439-9-26", "date":"2018-06-10", "day":"Sunday", "waktu":{ "imsak":1528608600, "subuh":1528609200, "syuruk":1528614240, "zohor":1528636800, "asar":1528649160, "maghrib":1528659240, "isyak":1528663800 } } ] }, "generated_at": "2018-06-02 12:58:40", "footer": { "source": "http://www.e-solat.gov.my/web/", "host": "JAKIM", "developer": { "name": "Hafiq", "homepage": "https://github.com/afiqiqmal" } } }
位置列表结果
您应该得到类似以下的数据
{ "code": 200, "error": false, "data": [ { "state": "Negeri Sembilan", "zone": "Jempol", "jakim_code": "NGS01", "code": "N1" }, { "state": "Negeri Sembilan", "zone": "Tampin", "jakim_code": "NGS01", "code": "N2" }, { "state": "Negeri Sembilan", "zone": "Port Dickson", "jakim_code": "NGS02", "code": "N3" }, { "state": "Negeri Sembilan", "zone": "Seremban", "jakim_code": "NGS02", "code": "N4" }, { "state": "Negeri Sembilan", "zone": "Kuala Pilah", "jakim_code": "NGS02", "code": "N5" }, { "state": "Negeri Sembilan", "zone": "Jelebu", "jakim_code": "NGS02", "code": "N6" }, { "state": "Negeri Sembilan", "zone": "Rembau", "jakim_code": "NGS02", "code": "N7" } ], "generated_at": "2018-05-31 15:35:15", "footer": { "source": "http://www.e-solat.gov.my/web/", "host": "JAKIM", "developer": { "name": "Hafiq", "homepage": "https://github.com/afiqiqmal" } } }
问题
- 如果发生问题,如API总是返回空 [],并已与真实网站核对,请告诉我 =)
变更日志
- 查看changelog.md
待办事项
- 通过坐标获取祷告时间
致谢
- 雅吉姆
- 位置附加 - 马来西亚祷告时间 (mpt)
许可
根据MIT 许可协议许可