{"id":1276,"date":"2025-02-26T17:28:20","date_gmt":"2025-02-26T08:28:20","guid":{"rendered":"https:\/\/shinke1987.net\/?p=1276"},"modified":"2025-02-26T17:28:20","modified_gmt":"2025-02-26T08:28:20","slug":"php%e3%81%a7%e7%a5%9d%e6%97%a5%e5%88%a4%e5%ae%9a","status":"publish","type":"post","link":"https:\/\/shinke1987.net\/?p=1276","title":{"rendered":"PHP\u3067\u795d\u65e5\u5224\u5b9a"},"content":{"rendered":"\n<h2 id=\"toc0\" class=\"wp-block-heading\">\u6982\u8981<\/h2>\n\n\n\n<p>\u795d\u65e5\u3092\u5224\u5b9a\u3057\u305f\u308a\u5217\u6319\u3067\u304d\u3001<\/p>\n\n\n\n<p>composer\u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3067\u304d\u308b<a href=\"https:\/\/github.com\/azuyalabs\/yasumi?tab=readme-ov-file\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">azuyalabs\/yasumi<\/a>\u3068\u3044\u3046\u30e9\u30a4\u30d6\u30e9\u30ea\u304c\u3042\u308b\u3002<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>yasumi\u306e\u516c\u5f0f\u30b5\u30a4\u30c8\u30672025\u5e74\u306e\u4f11\u65e5\u3092\u78ba\u8a8d\u3059\u308b\u306819\u500b\u3067\u3001<\/p>\n\n\n\n<p><a href=\"https:\/\/www8.cao.go.jp\/chosei\/shukujitsu\/gaiyou.html\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">\u5185\u95a3\u5e9c\u304c\u767a\u8868\u3057\u3066\u3044\u308b\u4f11\u65e5<\/a>\u306e\u6570\u3068\u5408\u81f4\u3059\u308b\u306e\u3067\u3001\u6b63\u78ba\u3055\u3082\u3042\u308a\u305d\u3046\u3002<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\u306a\u306e\u3067\u3053\u308c\u3092\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u3046\u3002<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 id=\"toc1\" class=\"wp-block-heading\">\u6e96\u5099<\/h2>\n\n\n\n<p>composer\u3067yasumi\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u305f\u3081\u306b\u6b21\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3002<\/p>\n\n\n\n<p><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\ncomposer require azuyalabs\/yasumi\n<\/pre><\/div>\n\n\n<h2 id=\"toc2\" class=\"wp-block-heading\">test.php<\/h2>\n\n\n\n<p>\u6b21\u306e\u30b3\u30fc\u30c9\u3092\u5b9f\u884c\u3059\u308c\u3070\u304a\u304a\u307e\u304b\u306b\u308f\u304b\u308b\u306f\u305a\u3002<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n&lt;?php\n\nuse Yasumi\\Holiday;\n\nrequire_once &quot;.\/vendor\/autoload.php&quot;;\n\n$holidays = Yasumi\\Yasumi::create(&#039;Japan&#039;, 2025, &#039;ja_JP&#039;);\n\n\/\/ \u5e74\u9593\u306e\u795d\u65e5\u306e\u6570\u3092\u8868\u793a\uff08\u632f\u66ff\u4f11\u65e5\u306f\u542b\u307e\u306a\u3044\uff09\u3002\necho $holidays-&gt;count() . PHP_EOL;\n\necho &#039;==========&#039; . PHP_EOL;\n\n\/\/ \u6307\u5b9a\u3057\u305f\u5e74\u6708\u65e5\u304c\u795d\u65e5\u3067\u3042\u308b\u304b\u5224\u5b9a\u3002\nif ($holidays-&gt;isHoliday(new DateTime(&#039;2025-2-11&#039;))) {\n    echo &quot;\u4f11\u307f&quot; . PHP_EOL;\n} else {\n    echo &quot;\u4f11\u307f\u3067\u306f\u306a\u3044&quot; . PHP_EOL;\n}\n\necho &#039;==========&#039; . PHP_EOL;\n\n\/\/ \u795d\u65e5\u306e\u5e74\u6708\u65e5\u3092\u4e00\u89a7\u8868\u793a\u3002\n$count = 0;\nforeach ($holidays-&gt;getHolidayDates() as $date) {\n    echo ++$count . &#039; : &#039; . $date . PHP_EOL;\n}\n\necho &#039;==========&#039; . PHP_EOL;\n\n\/\/ \u795d\u65e5\u306e\u540d\u79f0\u3068\u5e74\u6708\u65e5\u3092\u4e00\u89a7\u8868\u793a\u3002\nforeach ($holidays-&gt;getHolidayNames() as $name) {\n    $holiday = $holidays-&gt;getHoliday($name);\n    echo $holiday-&gt;getName() . &#039; : &#039; . $holiday . &quot;\\t\\t&quot; . $name . PHP_EOL;\n}\n\necho &#039;===========&#039; . PHP_EOL;\n\n\/\/ \u4e0b\u8a184\u65e5\u5206\u3092\u795d\u65e5\u3068\u3057\u3066\u8ffd\u52a0\u3002\n\/\/ 12\u670830\u65e5\n\/\/ 12\u670831\u65e5\n\/\/ 1\u67082\u65e5\n\/\/ 1\u67083\u65e5\nclass JapanCarendar extends Yasumi\\Provider\\Japan\n{\n    public function initialize(): void\n    {\n        parent::initialize(); \/\/ TODO: Change the autogenerated stub\n\n        $this-&gt;addHoliday(new Holiday(&#039;yearEndHoliday30&#039;, &#x5B;&#039;ja&#039; =&gt; &#039;30\u65e5\u5e74\u672b\u4f11\u6687&#039;], new DateTime(&quot;{$this-&gt;year}-12-30&quot;), &#039;ja_JP&#039;));\n        $this-&gt;addHoliday(new Holiday(&#039;yearEndHoliday31&#039;, &#x5B;&#039;ja&#039; =&gt; &#039;31\u65e5\u5e74\u672b\u4f11\u6687&#039;], new DateTime(&quot;{$this-&gt;year}-12-31&quot;), &#039;ja_JP&#039;));\n        $this-&gt;addHoliday(new Holiday(&#039;newYearHoliday2&#039;, &#x5B;&#039;ja&#039; =&gt; &#039;2\u65e5\u5e74\u59cb\u4f11\u6687&#039;], new DateTime(&quot;{$this-&gt;year}-01-02&quot;), &#039;ja_JP&#039;));\n        $this-&gt;addHoliday(new Holiday(&#039;newYearHoliday3&#039;, &#x5B;&#039;ja&#039; =&gt; &#039;3\u65e5\u5e74\u59cb\u4f11\u6687&#039;], new DateTime(&quot;{$this-&gt;year}-01-03&quot;), &#039;ja_JP&#039;));\n    }\n}\n\n$customHolidays = Yasumi\\Yasumi::create(&#039;JapanCarendar&#039;, 2025, &#039;ja_JP&#039;);\necho &#039;===== \u4ee5\u4e0b\u306f\u4f11\u65e5\u8ffd\u52a0\u5f8c =====&#039; . PHP_EOL;\n\n\/\/ \u5e74\u9593\u306e\u795d\u65e5\u306e\u6570\u3092\u8868\u793a\uff08\u632f\u66ff\u4f11\u65e5\u306f\u542b\u307e\u306a\u3044\uff09\u3002\necho $customHolidays-&gt;count() . PHP_EOL;\n\necho &#039;==========&#039; . PHP_EOL;\n\n\/\/ \u6307\u5b9a\u3057\u305f\u5e74\u6708\u65e5\u304c\u795d\u65e5\u3067\u3042\u308b\u304b\u5224\u5b9a\u3002\nif ($customHolidays-&gt;isHoliday(new DateTime(&#039;2025-2-11&#039;))) {\n    echo &quot;\u4f11\u307f&quot; . PHP_EOL;\n} else {\n    echo &quot;\u4f11\u307f\u3067\u306f\u306a\u3044&quot; . PHP_EOL;\n}\n\necho &#039;==========&#039; . PHP_EOL;\n\n\/\/ \u795d\u65e5\u306e\u5e74\u6708\u65e5\u3092\u4e00\u89a7\u8868\u793a\u3002\n$count = 0;\nforeach ($customHolidays-&gt;getHolidayDates() as $date) {\n    echo ++$count . &#039; : &#039; . $date . PHP_EOL;\n}\n\necho &#039;==========&#039; . PHP_EOL;\n\n\/\/ \u795d\u65e5\u306e\u540d\u79f0\u3068\u5e74\u6708\u65e5\u3092\u4e00\u89a7\u8868\u793a\u3002\nforeach ($customHolidays-&gt;getHolidayNames() as $name) {\n    $holiday = $customHolidays-&gt;getHoliday($name);\n\/\/    echo $name . &quot;\\t&quot;;\n    echo $holiday-&gt;getName() . &#039; : &#039; . $holiday . &quot;\\t\\t&quot; . $name . PHP_EOL;\n}\n<\/pre><\/div>\n\n\n<h2 id=\"toc3\" class=\"wp-block-heading\">\u5b9f\u884c\u7d50\u679c<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n16\n==========\n\u4f11\u307f\n==========\n1 : 2025-01-01\n2 : 2025-01-13\n3 : 2025-02-11\n4 : 2025-02-23\n5 : 2025-02-24\n6 : 2025-03-20\n7 : 2025-04-29\n8 : 2025-05-03\n9 : 2025-05-04\n10 : 2025-05-05\n11 : 2025-05-06\n12 : 2025-07-21\n13 : 2025-08-11\n14 : 2025-09-15\n15 : 2025-09-23\n16 : 2025-10-13\n17 : 2025-11-03\n18 : 2025-11-23\n19 : 2025-11-24\n==========\n\u5143\u65e5 : 2025-01-01\t\tnewYearsDay\n\u6210\u4eba\u306e\u65e5 : 2025-01-13\t\tcomingOfAgeDay\n\u5efa\u56fd\u8a18\u5ff5\u306e\u65e5 : 2025-02-11\t\tnationalFoundationDay\n\u5929\u7687\u8a95\u751f\u65e5 : 2025-02-23\t\temperorsBirthday\n\u632f\u66ff\u4f11\u65e5 (\u5929\u7687\u8a95\u751f\u65e5) : 2025-02-24\t\tsubstituteHoliday:emperorsBirthday\n\u6625\u5206\u306e\u65e5 : 2025-03-20\t\tvernalEquinoxDay\n\u662d\u548c\u306e\u65e5 : 2025-04-29\t\tshowaDay\n\u61b2\u6cd5\u8a18\u5ff5\u65e5 : 2025-05-03\t\tconstitutionMemorialDay\n\u307f\u3069\u308a\u306e\u65e5 : 2025-05-04\t\tgreeneryDay\n\u3053\u3069\u3082\u306e\u65e5 : 2025-05-05\t\tchildrensDay\n\u632f\u66ff\u4f11\u65e5 (\u307f\u3069\u308a\u306e\u65e5) : 2025-05-06\t\tsubstituteHoliday:greeneryDay\n\u6d77\u306e\u65e5 : 2025-07-21\t\tmarineDay\n\u5c71\u306e\u65e5 : 2025-08-11\t\tmountainDay\n\u656c\u8001\u306e\u65e5 : 2025-09-15\t\trespectfortheAgedDay\n\u79cb\u5206\u306e\u65e5 : 2025-09-23\t\tautumnalEquinoxDay\n\u30b9\u30dd\u30fc\u30c4\u306e\u65e5 : 2025-10-13\t\tsportsDay\n\u6587\u5316\u306e\u65e5 : 2025-11-03\t\tcultureDay\n\u52e4\u52b4\u611f\u8b1d\u306e\u65e5 : 2025-11-23\t\tlaborThanksgivingDay\n\u632f\u66ff\u4f11\u65e5 (\u52e4\u52b4\u611f\u8b1d\u306e\u65e5) : 2025-11-24\t\tsubstituteHoliday:laborThanksgivingDay\n===========\n===== \u4ee5\u4e0b\u306f\u4f11\u65e5\u8ffd\u52a0\u5f8c =====\n20\n==========\n\u4f11\u307f\n==========\n1 : 2025-01-01\n2 : 2025-01-02\n3 : 2025-01-03\n4 : 2025-01-13\n5 : 2025-02-11\n6 : 2025-02-23\n7 : 2025-02-24\n8 : 2025-03-20\n9 : 2025-04-29\n10 : 2025-05-03\n11 : 2025-05-04\n12 : 2025-05-05\n13 : 2025-05-06\n14 : 2025-07-21\n15 : 2025-08-11\n16 : 2025-09-15\n17 : 2025-09-23\n18 : 2025-10-13\n19 : 2025-11-03\n20 : 2025-11-23\n21 : 2025-11-24\n22 : 2025-12-30\n23 : 2025-12-31\n==========\n\u5143\u65e5 : 2025-01-01\t\tnewYearsDay\n2\u65e5\u5e74\u59cb\u4f11\u6687 : 2025-01-02\t\tnewYearHoliday2\n3\u65e5\u5e74\u59cb\u4f11\u6687 : 2025-01-03\t\tnewYearHoliday3\n\u6210\u4eba\u306e\u65e5 : 2025-01-13\t\tcomingOfAgeDay\n\u5efa\u56fd\u8a18\u5ff5\u306e\u65e5 : 2025-02-11\t\tnationalFoundationDay\n\u5929\u7687\u8a95\u751f\u65e5 : 2025-02-23\t\temperorsBirthday\n\u632f\u66ff\u4f11\u65e5 (\u5929\u7687\u8a95\u751f\u65e5) : 2025-02-24\t\tsubstituteHoliday:emperorsBirthday\n\u6625\u5206\u306e\u65e5 : 2025-03-20\t\tvernalEquinoxDay\n\u662d\u548c\u306e\u65e5 : 2025-04-29\t\tshowaDay\n\u61b2\u6cd5\u8a18\u5ff5\u65e5 : 2025-05-03\t\tconstitutionMemorialDay\n\u307f\u3069\u308a\u306e\u65e5 : 2025-05-04\t\tgreeneryDay\n\u3053\u3069\u3082\u306e\u65e5 : 2025-05-05\t\tchildrensDay\n\u632f\u66ff\u4f11\u65e5 (\u307f\u3069\u308a\u306e\u65e5) : 2025-05-06\t\tsubstituteHoliday:greeneryDay\n\u6d77\u306e\u65e5 : 2025-07-21\t\tmarineDay\n\u5c71\u306e\u65e5 : 2025-08-11\t\tmountainDay\n\u656c\u8001\u306e\u65e5 : 2025-09-15\t\trespectfortheAgedDay\n\u79cb\u5206\u306e\u65e5 : 2025-09-23\t\tautumnalEquinoxDay\n\u30b9\u30dd\u30fc\u30c4\u306e\u65e5 : 2025-10-13\t\tsportsDay\n\u6587\u5316\u306e\u65e5 : 2025-11-03\t\tcultureDay\n\u52e4\u52b4\u611f\u8b1d\u306e\u65e5 : 2025-11-23\t\tlaborThanksgivingDay\n\u632f\u66ff\u4f11\u65e5 (\u52e4\u52b4\u611f\u8b1d\u306e\u65e5) : 2025-11-24\t\tsubstituteHoliday:laborThanksgivingDay\n30\u65e5\u5e74\u672b\u4f11\u6687 : 2025-12-30\t\tyearEndHoliday30\n31\u65e5\u5e74\u672b\u4f11\u6687 : 2025-12-31\t\tyearEndHoliday31\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>\u6982\u8981 \u795d\u65e5\u3092\u5224\u5b9a\u3057\u305f\u308a\u5217\u6319\u3067\u304d\u3001 composer\u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3067\u304d\u308bazuyalabs\/yasumi\u3068\u3044\u3046\u30e9\u30a4\u30d6\u30e9\u30ea\u304c\u3042\u308b\u3002 yasumi\u306e\u516c\u5f0f\u30b5\u30a4\u30c8\u30672025\u5e74\u306e\u4f11\u65e5\u3092\u78ba\u8a8d\u3059\u308b\u306819\u500b\u3067\u3001 \u5185\u95a3\u5e9c\u304c\u767a\u8868\u3057\u3066\u3044\u308b\u4f11\u65e5\u306e [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[80],"tags":[81],"class_list":["post-1276","post","type-post","status-publish","format-standard","hentry","category-php","tag-php"],"_links":{"self":[{"href":"https:\/\/shinke1987.net\/index.php?rest_route=\/wp\/v2\/posts\/1276","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/shinke1987.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/shinke1987.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/shinke1987.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/shinke1987.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1276"}],"version-history":[{"count":2,"href":"https:\/\/shinke1987.net\/index.php?rest_route=\/wp\/v2\/posts\/1276\/revisions"}],"predecessor-version":[{"id":1278,"href":"https:\/\/shinke1987.net\/index.php?rest_route=\/wp\/v2\/posts\/1276\/revisions\/1278"}],"wp:attachment":[{"href":"https:\/\/shinke1987.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1276"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/shinke1987.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1276"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/shinke1987.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1276"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}