sukohi/

PHP 类,主要用于 Laravel,提供与日本相关的数据,如星期名称、性别等。

4.0.6 2022-11-18 09:28 UTC

README

一个主要用于 Laravel 的 Laravel 类,提供与日本相关的数据,如星期名称、性别等。
(适用于 Laravel 5+。 适用于 Laravel 4.2)

示例

安装

执行 composer 命令。

composer require sukohi/wafu:4.*

在 app.php 中注册服务提供者。

'providers' => [
    ...Others...,  
    Sukohi\Wafu\WafuServiceProvider::class,
]

同样别名为

'aliases' => [
    ...Others...,  
    'Wafu'   => Sukohi\Wafu\Facades\Wafu::class
]

注意:如果您使用的是 L55+,则不需要以上步骤,因为支持自动发现。

使用方法

性别(性別)

if(\Wafu::hasGender(1)) {

    echo \Wafu::gender(1);   // Between 0 and 2
    var_dump(\Wafu::genders());

}

1:男性,2:女性,0:其他

星期名称(曜日)

if(\Wafu::hasWeekName(2)) {

    echo \Wafu::weekName(2);                 // Between 0 and 6
    echo \Wafu::weekName(Carbon::now());     // or using Carbon
    var_dump(\Wafu::weekNames($key_flag = true));   // $key_flag means whether you need array keys or not

}

0:日,1:月,2:火,3:水,4:木,5:金,6:土

星期名称(长曜日)

echo \Wafu::longWeekName(2);                 // Between 0 and 6
echo \Wafu::longWeekName(Carbon::now());     // or using Carbon
var_dump(\Wafu::longWeekNames($key_flag = true));   // $key_flag means whether you need array keys or not

0:日曜日,1:月曜日,2:火曜日,3:水曜日,4:木曜日,5:金曜日,6:土曜日

月份名称(月名)

if(\Wafu::hasMonth(2)) {

    echo \Wafu::month(2);                // Between 1 and 12
    echo \Wafu::month(Carbon::now());    // Using Carbon
    var_dump(\Wafu::months($key_flag = true));   // $key_flag means whether you need array keys or not

}

1月 ~ 12月

旧月份名称(旧暦月名)

if(\Wafu::hasOldMonth(2)) {

    echo \Wafu::oldMonth(2);                // Between 1 and 12
    echo \Wafu::oldMonth(Carbon::now());    // Using Carbon
    var_dump(\Wafu::oldMonths($key_flag = true));   // $key_flag means whether you need array keys or not

}

1:睦月,2:如月,3:弥生,4:卯月,5:皐月,6:水無月,7:文月,8:葉月,9:長月,10:神無月,11:霜月,12:師走

日期(日付)

echo \Wafu::date($format, $time);

// $format: See the below.
// $time: (Skippable) Timestamp, date format or Carbon instance

echo \Wafu::date('{Y}');    // 2015年
echo \Wafu::date('{y}');    // 15年
echo \Wafu::date('{E}');    // 平成27年
echo \Wafu::date('{e}');    // H27
echo \Wafu::date('{m}');    // 01月
echo \Wafu::date('{n}');    // 1月
echo \Wafu::date('{d}');    // 01日
echo \Wafu::date('{j}');    // 1日
echo \Wafu::date('{G}');    // 19時
echo \Wafu::date('{g}');    // 7時
echo \Wafu::date('{H}');    // 07時, 19時
echo \Wafu::date('{h}');    // 07時
echo \Wafu::date('{i}');    // 01分
echo \Wafu::date('{s}');    // 01秒
echo \Wafu::date('{w}');    // 日〜土
echo \Wafu::date('{a}');    // 午前, 午後
echo \Wafu::date('{Y}{m}{d}({w}) {H}{i}');    // 2015年05月23日(土) 20時11分
echo \Wafu::date('{F}');    // 2015年05月23日(土) 20時11分
echo \Wafu::date('{f}');    // 2015年05月23日(土) 20:11

// You can also use normal date formats like the below.

echo \Wafu::date('{Y}{m}{d} H:i');    // 2015年05月23日(土) 20:11

都道府县(都道府県)

if(\Wafu::hasPrefecture(28)) {

    echo \Wafu::prefecture(28); // 兵庫県
    echo \Wafu::prefecture(28, true); // 兵庫
    echo \Wafu::prefectureId('兵庫県'); // 28
    echo \Wafu::prefectureId('東京'); // 13
    var_dump(\Wafu::prefectures());
    var_dump(\Wafu::prefectures(true)); // for Short Names

}

(完整)

1:北海道,2:青森县,3:岩手县,4:宫城县,5:秋田县,6:山形县,7:福岛县,8:茨城县,9:栃木县,10:群马县,11:埼玉县,12:千叶县,13:东京都,14:神奈川县,15:新潟县,16:富山县,17:石川县,18:福井县,19:山梨县,20:长野县,21:岐阜县,22:静冈县,23:爱知县,24:三重县,25:滋贺县,26:京都府,27:大阪府,28:兵库县,29:奈良县,30:和歌山县,31:鸟取县,32:岛根县,33:冈山县,34:广岛县,35:山口县,36:徳岛县,37:香川县,38:爱媛县,39:高知县,40:福冈县,41:佐贺县,42:长崎县,43:熊本县,44:大分县,45:宫崎县,46:鹿儿岛县,47:冲绳县

(简写)

1:北海道,2:青森,3:岩手,4:宫城,5:秋田,6:山形,7:福岛,8:茨城,9:栃木,10:群马,11:埼玉,12:千叶,13:东京,14:神奈川,15:新潟,16:富山,17:石川,18:福井,19:山梨,20:长野,21:岐阜,22:静冈,23:爱知,24:三重,25:滋贺,26:京都,27:大阪,28:兵库,29:奈良,30:和歌山,31:鸟取,32:岛根,33:冈山,34:广岛,35:山口,36:徳岛,37:香川,38:爱媛,39:高知,40:福冈,41:佐贺,42:长崎,43:熊本,44:大分,45:宫崎,46:鹿儿岛,47:冲绳

地区(地方)

if(\Wafu::hasRegion(3)) {

    echo \Wafu::region(5);
    echo \Wafu::regionId('関西');
    var_dump(\Wafu::regions());
    var_dump(\Wafu::regionPrefectureIds());  // Prefecture IDs by regions

}

1:北海道,2:东北,3:关东,4:中部,5:关西,6:中国,7:四国,8:九州

日本时代(和暦)

print_r(\Wafu::era(1977));

/*  Output

    Array
    (
        [name] => 昭和
        [initial] => S
        [symbol] => showa
        [year] => 52
        [full] => 昭和52年
    )

*/

[Note]: The keys changed from ver 4.0.1

// Strict mode: You will get "平成31年" by setting Carbon instance that is on 2019-04-30 as the argument.

$heiseiEndDt = new Carbon('2019-04-30');
$heiseiEndEra = \Wafu::era($heiseiEndDt);
print_r($heiseiEndEra);

/* Output

    Array
    (
        [name] => 平成
        [year] => 31
        [initial] => H
        [symbol] => heisei
        [full] => 平成31年
    )

*/

$reiwaStartDt = new Carbon('2019-05-01');
$reiwaStartEra = \Wafu::era($reiwaStartDt);
print_r($reiwaStartEra);

/* Output

    Array
    (
        [name] => 令和
        [year] => 1
        [initial] => R
        [symbol] => reiwa
        [full] => 令和元年
    )

*/

echo \Wafu::eraYear(1989);   // 平成元年

// also in "Strict mode"

\Wafu::eraYear(new Carbon('2019-04-30'));
// 平成31年


// Get Common Era from Japanese Era

echo \Wafu::commonYear('昭和52年');  // 1977
echo \Wafu::commonYear('明治元年');   // 1868
echo \Wafu::commonYear('S52年');  // 1977
echo \Wafu::commonYear('M元年');   // 1868
echo \Wafu::commonYear('S52');    // 1977
echo \Wafu::commonYear('M1');   // 1868

$era_years = \Wafu::eraYears();

/*  Output

    array:4 [▼
      "meiji" => "明治"
      "taisho" => "大正"
      "showa" => "昭和"
      "heisei" => "平成"
    ]
    
*/

$era_names = \Wafu::eraNames();

/*  Output

    array:5 [▼
      0 => "令和"
      1 => "平成"
      2 => "昭和"
      3 => "大正"
      4 => "明治"
    ]

*/

$era_initials = \Wafu:eraInitials();

/*  Output

    array:5 [▼
      0 => "R"
      1 => "H"
      2 => "S"
      3 => "T"
      4 => "M"
    ]

*/

$era_initials = \Wafu:eraSymbols();

/*  Output

    array:5 [▼
      0 => "reiwa"
      1 => "heisei"
      2 => "showa"
      3 => "taisho"
      4 => "meiji"
    ]

*/

此软件包已支持新的时代名称 令和

将日本日期转换为日期时间(和暦から西暦へ変換)

$dt = \Wafu::parseDate('平成27年05月23日(土) 20時11分29秒');
$dt = \Wafu::parseDate('平成27年05月23日(土) 20時11分');
$dt = \Wafu::parseDate('平成27年05月23日(土) 20時');
$dt = \Wafu::parseDate('平成27年05月23日(土) 20:11:29');
$dt = \Wafu::parseDate('平成27年05月23日(土) 20:11');
$dt = \Wafu::parseDate('平成27年05月23日(土)');
$dt = \Wafu::parseDate('平成27年05月');
$dt = \Wafu::parseDate('平成27年');
$dt = \Wafu::parseDate('H27.5.23(土) 20時11分29秒');
$dt = \Wafu::parseDate('H27.5.23(土) 20時11分');
$dt = \Wafu::parseDate('H27.5.23(土) 20:11:29');
$dt = \Wafu::parseDate('H27.5.23(土) 20:11');
$dt = \Wafu::parseDate('H27.5.23(土)');
$dt = \Wafu::parseDate('H27.5');
$dt = \Wafu::parseDate('H27');

国定假日(祝日・休日)

// Simple Way

$national_days = Wafu::nationalDays();
var_dump($national_days);   // National days


// with Cache

$national_days = Wafu::nationalDays($cache_flag = true));
  • 注意
    由于 Google 已停止通过订阅提供假日数据,因此您不能再像下面那样使用 $start_date$end_date 参数。
    但您不需要更改已经编写的代码,因为 nationalDays() 方法可以检测您的代码是否为旧版本。

    Wafu::nationalDays($start_date, $end_date, $cache_flag = true);

日元格式(円表記)

echo \Wafu::yen(1500);                               // 1,500円
echo \Wafu::yen(1500, YEN_NO_COMMA);                 // 1500円
echo \Wafu::yen(1500, YEN_SYMBOL);                   // ¥1,500
echo \Wafu::yen(1500, YEN_SYMBOL_NO_COMMA);          // ¥1500
echo \Wafu::yen(1500, YEN_SYMBOL_COMMA_HYPHEN);      // ¥1,500-
echo \Wafu::yen(1500, YEN_SYMBOL_NO_COMMA_HYPHEN);   // ¥1500-

消费税(消費税)

$dt = new Carbon('2000-01-01');
$amount = 1000;
echo \Wafu::consumptionTax($dt, $amount);   // 50
echo \Wafu::consumptionTax($dt, $amount, $total_flag = true);   // 1050

您可以通过使用 $reduced_tax_rate 参数来更改税率。

示例)

echo \Wafu::consumptionTax($dt, $amount, $total_flag, $reduced_tax_rate = true); // in 8% tax rate
echo \Wafu::consumptionTax($dt, $amount, $total_flag, $reduced_tax_rate = false); // in 10% tax rate

邮编(郵便番号)

echo \Wafu::zip('1234567'); // 123-4567
echo \Wafu::zip('1234567', '_'); // 123_4567
echo \Wafu::zip('1234567'); // 123-4567

if(\Wafu::checkZip('123-4567')) {

    echo 'OK';

}

许可证

此软件包采用 MIT 许可证授权。

版权所有 2015 Sukohi Kuhoh