afiqiqmal/esolat-malaysia

此包已被弃用且不再维护。未建议替换包。

马来西亚电子祷告时间表

3.1 2018-10-09 08:58 UTC

This package is auto-updated.

Last update: 2020-01-30 17:11:16 UTC


README

Build Status Coverage Packagist Packagist

马来西亚电子祷告时间表的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 许可协议许可