archerzdip/chinese-idnumber-generate

中国身份证号码生成包。

dev-master 2019-05-22 10:04 UTC

This package is auto-updated.

Last update: 2024-09-22 22:29:21 UTC


README

项目已被重构,新地址为 https://github.com/ArcherZdip/laravel-identity

安装

composer

composer require archerzdip/chinese-idnumber-generate

Laravel

在您的config/app.php中,将ArcherZdip\GenerateIDNumber\GenerateChineseIDNumberServiceProvider::class添加到提供者数组末尾

'providers' => [
    ...
    ArcherZdip\GenerateIDNumber\GenerateChineseIDNumberServiceProvider::class,
],

如果您使用的是Laravel 5.5,这就足够了。

方法

  • get()
  • getone()
  • on(array $attributes)
  • limit(int $count)
  • toString()
  • toArray()
  • province(string $province)
  • city(string $city)
  • region(string $region)
  • sex(int $sex)
  • datetime(string $datetime)

用法

getOne()用法

$idNo = app('chinese_id_faker')->on([
    'province' => '辽宁省',
    'city'    => '', // random
    'region'    => '', // random
    'datetime' => '', // random
    'sex'      => 0,  // 0-male  1-female
])->getOne();
dd($idNo);    

结果是对象

ArcherZdip\GenerateIDNumber\ChineseIDNumber {#266
  +id: "210422201802123855"
  +province: "辽宁省"
  +city: "抚顺市"
  +region: "新宾满族自治县"
  +sex: "男"
  +birth: "20180212"
}

get()用法"

$idNos = app('chinese_id_faker')->on([
    'province' => '辽宁省',
    'city'    => '',
    'region'    => '',
    'datetime' => '',
    'sex'      => 1,  // 0-male  1-female
])->limit(1)->get();
dd($idNos);

结果是对象

ArcherZdip\GenerateIDNumber\Foo {#267
  +items: array:1 [
    0 => ArcherZdip\GenerateIDNumber\ChineseIDNumber {#266
      +id: "511825197911085740"
      +province: "四川省"
      +city: "雅安市"
      +region: "天全县"
      +sex: "女"
      +birth: "19791108"
    }
  ]
}

On(array $attributes)用法

$attributes是参数,包括

  • province: 中国省份
  • city: 城市,如沈阳市
  • region: 区域,如某某区
  • datetime: 出生日期,格式为2018-08-08
  • sex: 性别,0为男性,1为女性

limit(int $count)用法

限制可获取的行数。

toString()用法

仅显示中国身份证号码。

"211201201802129542"

array:2 [
  0 => "63212619971109033X"
  1 => "810000195308134165"
]

toArray()用法

对象转数组。例如

array:6 [
  "id" => "211201201802129542"
  "province" => "辽宁省"
  "city" => "铁岭市"
  "region" => "市辖区"
  "sex" => "女"
  "birth" => "20180212"
]

province(string $province)用法

设置省份。

city(string $city)用法

设置城市。

region(string $region)用法

设置区域。

sex(int $sex)用法

设置性别。

datetime(string $datetime)用法

设置日期时间,格式为xxxx-xx-xx。

其他功能

VerityChineseIDNumber可以验证中国身份证号码。
用法

use ArcherZdip\GenerateIDNumber\VerityChineseIDNumber;

$bool = VerityChineseIDNumber::isValid(string $idNumber);

其他方法

use ArcherZdip\GenerateIDNumber\VerityChineseIDNumber;

// 获取生日
$birthday = (new VerityChinsesIDNumber(string $idNumber))->getBirthday()->format('Y-m-d');

// 获取年龄
$age = (new VerityChinsesIDNumber(string $idNumber))->getAge();

// 是否为男性
$isMale = (new VerityChinsesIDNumber(string $idNumber))->isMale();

// 是否为女性
$isFemale = (new VerityChinsesIDNumber(string $idNumber))->isFemale();

// 获取年份
$year = (new VerityChinsesIDNumber(string $idNumber))->getYear()

// 获取月份
$month = (new VerityChinsesIDNumber(string $idNumber))->getmonth()

// 获取日期
$day = (new VerityChinsesIDNumber(string $idNumber))->getday()