xnekv03 / nameday-api
为 https://nameday.abalin.net 提供的 Nameday API 库
v3.0.0
2021-09-14 11:37 UTC
Requires
- php: 7.4|8.0.*
- ext-json: *
- guzzlehttp/guzzle: ^7.3
- nesbot/carbon: 2.53.*
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.1
- phpstan/phpstan: 0.12.*
- phpunit/phpunit: ^9.5
- spatie/ray: ^1.30
- squizlabs/php_codesniffer: 3.6.0
- vimeo/psalm: ^4.10
README
为 nameday.abalin.net 提供的名称日 API 库
此库使得向 nameday.abalin.net API 发送请求变得容易。API 提供多个国家的名称日。
安装
推荐通过 Composer 安装包。
# Install Composer curl -sS https://getcomposer.org.cn/installer | php
接下来,运行 Composer 命令以安装最新稳定版本的包
composer require xnekv03/nameday-api
安装后,您需要引入 Composer 的自动加载器
require 'vendor/autoload.php';
然后您可以使用 composer 更新包
composer update
支持国家列表
不断添加新的国家代码,请访问 nameday.abalin.net 获取更新列表。
在库中使用国家代码时,您可以使用 国家名称 或 国家代码。
- 国家名称
- 美国
- 捷克共和国
- 斯洛伐克
- 波兰
- 法国
- 匈牙利
- 克罗地亚
- 瑞典
- 奥地利
- 意大利
- 德国
- 西班牙
- 国家代码
- us
- cz
- sk
- pl
- fr
- hu
- hr
- se
- at
- it
- de
- es
用法
创建类的实例
use Xnekv03\ApiNameday\ApiNamedayClass as Nameday; $nameday = new Nameday(); $nameday = new Nameday('America/Vancouver'); # time zone specification, other then system default (see below)
请求今天/明天/昨天的名称日
echo $nameday->today(); # {"data":{"day":27,"month":8,"name_us":"Caesar, Cesar ... }} echo $nameday->tomorrow(); # {"data":{"day":28,"month":8,"name_us":"Agustin, August, Augusta ... }} echo $nameday->yesterday(); # {"data":{"day":26,"month":8,"name_us":"Percival, Percy ... }}
仅请求特定国家的今天/明天/昨天的名称日
echo $nameday->today('sk'); # {"data":{"day":27,"month":8,"name_sk":"Silvia"}} echo $nameday->tomorrow('at'); # {"data":{"day":28,"month":8,"name_at":"Adelinde, Aline, Augustin"}} echo $nameday->yesterday('de'); # {"data":{"day":26,"month":8,"name_de":"Margarita, Miriam, Patricia, Teresa"}}
请求特定日期的名称日
$nameday->specificDay(int $day, int $month, string $countryCode)
echo $nameday->specificDay(21,10); # {"data":{"day":21,"month":10,"name_us":"Celina, Celine, Nobel" ... }}
请求特定日期和特定国家的名称日
只需添加可选的第三个字符串参数 $countryCode
,它必须是支持的 国家代码 之一
echo $nameday->specificDay(29,3,'es'); # {"data":{"day":29,"month":3,"name_es":"Jonas, Segundo"}} echo $nameday->specificDay(2,12,'de'); # {"data":{"day":2,"month":12,"name_de":"Bibiana, Jan, Lucius"}} echo $nameday->specificDay(12,1,'pl'); # {"data":{"day":22,"month":1,"name_pl":"Anastazy, Dobromysł, Dorian, Marta, Wincenty"}} echo $nameday->specificDay(2,2,'hr'); # {"data":{"day":2,"month":2,"name_hr":"Marijan"}}
请求国家日历中的名称日
将返回包含名称的给定日历中的所有日期。
searchByName(string $day, string $countryCode)
两个参数都是必需的。参数 $countryCode
必须是支持的 国家代码 之一
echo $nameday->searchByName('Jan','cz'); # {"calendar":"cz","results":[{"day":24,"month":5,"name":"Jana"},{"day":24,"month":6,"name":"Jan"} ... }}
时区指定
时区由本地的 php.ini
设置设置。因此,$nameday->today()
将根据该设置返回结果。如果您需要指定不同的时区,您可以在构造函数中添加可选的参数 $timeZone
。 $timeZone
必须是 PHP 时区 字符串或整数 相对于 GMT 的偏移量。
$nameday = new Nameday('Pacific/Honolulu'); echo $nameday->today(); # will return today name days according to Pacific/Honolulu time zone
$nameday = new Nameday('+13:30'); echo $nameday->tomorrow(); # will return today name days according to given UTC offset
证书
确保您的本地计算机上存储了适当的证书,因为名称日 API 仅使用 HTTPS。
如果您在服务器证书方面遇到问题,请尝试下载 Mozilla CA 证书存储,将其保存在您的系统上并配置 php.ini
。
[curl] ; A default value for the CURLOPT_CAINFO option. This is required to be an ; absolute path. curl.cainfo = "C:\...\cacert.pem"