PHPackages                             kanagama/calendarar - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. kanagama/calendarar

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

kanagama/calendarar
===================

カレンダーのための配列を生成する拡張機能

v1.0.5(2y ago)04191[1 PRs](https://github.com/kanagama/calendarar/pulls)MITPHPPHP ^7.4 || ^8.0

Since Feb 15Pushed 1y ago1 watchersCompare

[ Source](https://github.com/kanagama/calendarar)[ Packagist](https://packagist.org/packages/kanagama/calendarar)[ RSS](/packages/kanagama-calendarar/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (3)Versions (16)Used By (0)

Calendarar
==========

[](#calendarar)

かれんだらー

機能概要
----

[](#機能概要)

開始日と終了日を設定し、その開始日から終了日までのカレンダー出力用の配列を作成する。

php7.4 以上

使い方
---

[](#使い方)

composer でインストール

```
composer require kanagama/calendarar
```

### インスタンス化、もしくは静的呼び出しも可能です

[](#インスタンス化もしくは静的呼び出しも可能です)

#### example

[](#example)

```
$calendarar = (new Calendarar())->nextMonth();

$calendarar = Calendarar::nextMonth();
```

### create()

[](#create)

カレンダー開始日とカレンダー終了日を元にしてカレンダー用配列を出力する

#### example

[](#example-1)

```
// example
// 今月分のカレンダー用配列を出力する
// ※2023年02月に実行したと想定
Calendarar::thisMonth()->create();
```

#### 返却値

[](#返却値)

```
^ array:1 [
  2023 => array:1 [
    2 => array:5 [
      1 => array:7 [
        0 => []
        1 => []
        2 => []
        3 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 1
          "week" => 1
          "dayOfWeek" => 3
          "data" => []
        ]
        4 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 2
          "week" => 1
          "dayOfWeek" => 4
          "data" => []
        ]
        5 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 3
          "week" => 1
          "dayOfWeek" => 5
          "data" => []
        ]
        6 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 4
          "week" => 1
          "dayOfWeek" => 6
          "data" => []
        ]
      ]
      2 => array:7 [
        0 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 5
          "week" => 2
          "dayOfWeek" => 0
          "data" => []
        ]
        1 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 6
          "week" => 2
          "dayOfWeek" => 1
          "data" => []
        ]
        2 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 7
          "week" => 2
          "dayOfWeek" => 2
          "data" => []
        ]
        3 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 8
          "week" => 2
          "dayOfWeek" => 3
          "data" => []
        ]
        4 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 9
          "week" => 2
          "dayOfWeek" => 4
          "data" => []
        ]
        5 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 10
          "week" => 2
          "dayOfWeek" => 5
          "data" => []
        ]
        6 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 11
          "week" => 2
          "dayOfWeek" => 6
          "data" => []
        ]
      ]
      3 => array:7 [
        0 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 12
          "week" => 3
          "dayOfWeek" => 0
          "data" => []
        ]
        1 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 13
          "week" => 3
          "dayOfWeek" => 1
          "data" => []
        ]
        2 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 14
          "week" => 3
          "dayOfWeek" => 2
          "data" => []
        ]
        3 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 15
          "week" => 3
          "dayOfWeek" => 3
          "data" => []
        ]
        4 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 16
          "week" => 3
          "dayOfWeek" => 4
          "data" => []
        ]
        5 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 17
          "week" => 3
          "dayOfWeek" => 5
          "data" => []
        ]
        6 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 18
          "week" => 3
          "dayOfWeek" => 6
          "data" => []
        ]
      ]
      4 => array:7 [
        0 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 19
          "week" => 4
          "dayOfWeek" => 0
          "data" => []
        ]
        1 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 20
          "week" => 4
          "dayOfWeek" => 1
          "data" => []
        ]
        2 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 21
          "week" => 4
          "dayOfWeek" => 2
          "data" => []
        ]
        3 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 22
          "week" => 4
          "dayOfWeek" => 3
          "data" => []
        ]
        4 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 23
          "week" => 4
          "dayOfWeek" => 4
          "data" => []
        ]
        5 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 24
          "week" => 4
          "dayOfWeek" => 5
          "data" => []
        ]
        6 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 25
          "week" => 4
          "dayOfWeek" => 6
          "data" => []
        ]
      ]
      5 => array:7 [
        0 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 26
          "week" => 5
          "dayOfWeek" => 0
          "data" => []
        ]
        1 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 27
          "week" => 5
          "dayOfWeek" => 1
          "data" => []
        ]
        2 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 28
          "week" => 5
          "dayOfWeek" => 2
          "data" => []
        ]
        3 => []
        4 => []
        5 => []
        6 => []
      ]
    ]
  ]
]

```

### html()

[](#html)

カレンダー開始日とカレンダー終了日を元にしてカレンダー table を html タグで出力する

#### example

[](#example-2)

```
Calendarar::thisMonth()->html();
```

#### example 出力される html 2023/02

[](#example-出力される-html-202302)

```

            日
            月
            火
            水
            木
            金
            土

            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

```

### startOfMonday()

[](#startofmonday)

カレンダーの週の始まりを月曜にする

#### example

[](#example-3)

```
Calendarar::thisMonth()
    ->startOfMonday()
    ->html()
```

```

            月
            火
            水
            木
            金
            土
            日

            1
            2
            3
            4
            5

```

### startOfSunday()

[](#startofsunday)

カレンダーの週の始まりを日曜にする（デフォルト）

#### example

[](#example-4)

```
Calendarar::thisMonth()
    ->startOfSunday()
    ->html()
```

```

            日
            月
            火
            水
            木
            金
            土

            1
            2
            3
            4

```

### isStartOfMonday()

[](#isstartofmonday)

カレンダーの週の始まりが月曜か判定する

### isStartOfSunday()

[](#isstartofsunday)

カレンダーの週の始まりが日曜か判定する

### setEncoding

[](#setencoding)

html() で出力する table.thead.tr.th の内容を ja, en で指定する

#### example

[](#example-5)

```
// デフォルト値は ja
Calendarar::thisMonth()
    ->setEncoding('en')
    ->html()
```

```

            sun
            mon
            tue
            wed
            thu
            fri
            sat

```

### setTrTemplate(string $template)

[](#settrtemplatestring-template)

html() で出力される table.thead.tr.th タグ内のテンプレートを変更します

#### デフォルト値

[](#デフォルト値)

```
{{dayOfWeek}}

```

{{dayOfWeek}}が曜日の文字列に変換されます

#### example

[](#example-6)

```
Calendarar::thisMonth()
    ->setTrTemplate('{{dayOfWeek}}')
    ->html()
```

```

            日
            月
            火
            水
            木
            金
            土

```

### setDay(int $year, int $month, int $day, mixed $data)

[](#setdayint-year-int-month-int-day-mixed-data)

指定日に、$data を格納する

#### example

[](#example-7)

```
Calendarar::thisMonth()
    ->setDay(2023, 2, 23, [
        'holiday' => true,
        'holiday_name' => '天皇誕生日',
    ])
    ->create()
```

```
^ array:1 [
  2023 => array:1 [
    2 => array:5 [
      1 => array:7 [
        0 => []
        1 => []
        2 => []
        3 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 1
          "week" => 1
          "dayOfWeek" => 3
          "data" => []
        ]
        4 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 2
          "week" => 1
          "dayOfWeek" => 4
          "data" => []
        ]
        5 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 3
          "week" => 1
          "dayOfWeek" => 5
          "data" => []
        ]
        6 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 4
          "week" => 1
          "dayOfWeek" => 6
          "data" => []
        ]
      ]
      2 => array:7 [
        0 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 5
          "week" => 2
          "dayOfWeek" => 0
          "data" => []
        ]
        1 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 6
          "week" => 2
          "dayOfWeek" => 1
          "data" => []
        ]
        2 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 7
          "week" => 2
          "dayOfWeek" => 2
          "data" => []
        ]
        3 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 8
          "week" => 2
          "dayOfWeek" => 3
          "data" => []
        ]
        4 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 9
          "week" => 2
          "dayOfWeek" => 4
          "data" => []
        ]
        5 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 10
          "week" => 2
          "dayOfWeek" => 5
          "data" => []
        ]
        6 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 11
          "week" => 2
          "dayOfWeek" => 6
          "data" => []
        ]
      ]
      3 => array:7 [
        0 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 12
          "week" => 3
          "dayOfWeek" => 0
          "data" => []
        ]
        1 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 13
          "week" => 3
          "dayOfWeek" => 1
          "data" => []
        ]
        2 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 14
          "week" => 3
          "dayOfWeek" => 2
          "data" => []
        ]
        3 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 15
          "week" => 3
          "dayOfWeek" => 3
          "data" => []
        ]
        4 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 16
          "week" => 3
          "dayOfWeek" => 4
          "data" => []
        ]
        5 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 17
          "week" => 3
          "dayOfWeek" => 5
          "data" => []
        ]
        6 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 18
          "week" => 3
          "dayOfWeek" => 6
          "data" => []
        ]
      ]
      4 => array:7 [
        0 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 19
          "week" => 4
          "dayOfWeek" => 0
          "data" => []
        ]
        1 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 20
          "week" => 4
          "dayOfWeek" => 1
          "data" => []
        ]
        2 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 21
          "week" => 4
          "dayOfWeek" => 2
          "data" => []
        ]
        3 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 22
          "week" => 4
          "dayOfWeek" => 3
          "data" => []
        ]
        4 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 23
          "week" => 4
          "dayOfWeek" => 4
          "data" => [
            'holiday' => true,
            'holiday_name' => '天皇誕生日',
          ],
        ]
        5 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 24
          "week" => 4
          "dayOfWeek" => 5
          "data" => []
        ]
        6 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 25
          "week" => 4
          "dayOfWeek" => 6
          "data" => []
        ]
      ]
      5 => array:7 [
        0 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 26
          "week" => 5
          "dayOfWeek" => 0
          "data" => []
        ]
        1 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 27
          "week" => 5
          "dayOfWeek" => 1
          "data" => []
        ]
        2 => array:6 [
          "year" => 2023
          "month" => 2
          "day" => 28
          "week" => 5
          "dayOfWeek" => 2
          "data" => []
        ]
        3 => []
        4 => []
        5 => []
        6 => []
      ]
    ]
  ]
]

```

### setTdTemplate(string $template)

[](#settdtemplatestring-template)

html() で出力される table.tbody.tr.td タグ内のテンプレートを変更します

#### デフォルト値

[](#デフォルト値-1)

```
{{day}}

```

{{day}}が数値の日付に変換されます

#### example

[](#example-8)

```
Calendarar::thisMonth()
    ->setTdTemplate('{{day}}')
    ->html()
```

```

            1
            2
            3
            4

```

### set(mixed $start, mixed $end)

[](#setmixed-start-mixed-end)

第一引数にカレンダー開始日、第二引数にカレンダー終了日を設定する

※第一引数は月初に、第二引数は月末に変換されます

### setStartMonth(mixed $start)

[](#setstartmonthmixed-start)

カレンダー開始月を設定する

※月初に変換されます

### setEndMonth(mixed $end)

[](#setendmonthmixed-end)

カレンダー終了月を設定する

※月末に変換されます

### thisMonth()

[](#thismonth)

今月１ヶ月分のカレンダーを設定

#### example

[](#example-9)

```
Calendarar::thisMonth();
```

### lastMonth()

[](#lastmonth)

先月１ヶ月分のカレンダーを設定

#### example

[](#example-10)

```
Calendarar::lastMonth();
```

### nextMonth()

[](#nextmonth)

来月１ヶ月分のカレンダーを設定

#### example

[](#example-11)

```
Calendarar::nextMonth();
```

### oneYear()

[](#oneyear)

今月から12ヶ月分のカレンダーを設定

#### example

[](#example-12)

```
Calendarar::oneYear();
```

### getStartDatetime()

[](#getstartdatetime)

設定されたカレンダー開始日を表示する

#### example

[](#example-13)

```
Calendarar::thisMonth()->getStartDatetime();
```

### getEndDatetime()

[](#getenddatetime)

設定されたカレンダー終了日を表示する

#### example

[](#example-14)

```
Calendarar::thisMonth()->getEndDatetime();
```

### addStartYear(int $add)

[](#addstartyearint-add)

カレンダー開始年を $add 年分進める

#### example

[](#example-15)

```
Calendarar::addStartYear(1);
```

### addEndYear(int $add)

[](#addendyearint-add)

カレンダー終了年を $add 年分進める

#### example

[](#example-16)

```
Calendarar::addEndYear(1);
```

### subStartYear(int $sub)

[](#substartyearint-sub)

カレンダー開始年を $sub 年分戻す

#### example

[](#example-17)

```
Calendarar::subStartYear(1);
```

### subEndYear(int $sub)

[](#subendyearint-sub)

カレンダー終了年を $sub 年分戻す

#### example

[](#example-18)

```
Calendarar::subEndYear(1);
```

### addStartMonth(int $add)

[](#addstartmonthint-add)

カレンダー開始月を $add 月分進める

```
Calendarar::addStartMonth(1);
```

### addEndMonth(int $add)

[](#addendmonthint-add)

カレンダー終了月を $add 月分進める

#### example

[](#example-19)

```
Calendarar::addEndMonth(1);
```

### subStartMonth(int $sub)

[](#substartmonthint-sub)

カレンダー開始月を $sub 月分戻す

#### example

[](#example-20)

```
Calendarar::subStartMonth(1);
```

### subEndMonth(int $sub)

[](#subendmonthint-sub)

カレンダー終了月を $sub 月分戻す

#### example

[](#example-21)

```
Calendarar::subEndMonth(1);
```

###  Health Score

29

—

LowBetter than 59% of packages

Maintenance27

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~45 days

Recently: every ~120 days

Total

12

Last Release

689d ago

Major Versions

v0.0.1 → v1.0.02023-02-16

PHP version history (2 changes)v0.0.1PHP ^7.4 || ^8.0

v1.0.6.x-devPHP ^7.4 || ^8.0 || ^8.1 || ^8.2 || ^8.3

### Community

Maintainers

![](https://www.gravatar.com/avatar/be317eed08600136c2e3350d92d57160b0a683957131591389d9bd42fa3b543e?d=identicon)[k-nagama](/maintainers/k-nagama)

---

Top Contributors

[![kanagama](https://avatars.githubusercontent.com/u/80406579?v=4)](https://github.com/kanagama "kanagama (36 commits)")

---

Tags

arraycalendar

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/kanagama-calendarar/health.svg)

```
[![Health](https://phpackages.com/badges/kanagama-calendarar/health.svg)](https://phpackages.com/packages/kanagama-calendarar)
```

###  Alternatives

[spatie/laravel-google-calendar

Manage events on a Google Calendar

1.4k1.5M21](/packages/spatie-laravel-google-calendar)[benhall14/php-calendar

A simple PHP class to generate calendars.

9822.6k](/packages/benhall14-php-calendar)[unclecheese/eventcalendar

Event Calendar for the SilverStripe CMS

3215.2k8](/packages/unclecheese-eventcalendar)[silverstripe/event-calendar

Event Calendar for the SilverStripe CMS

318.5k3](/packages/silverstripe-event-calendar)[aluguest/ical-easy-reader

An easy to understood class, loads a "ics" format string and returns an array with the traditional iCal fields.

122.7k](/packages/aluguest-ical-easy-reader)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
