spatie/opening-hours
を使用すると、ビジネスの営業時間を記述するオブジェクトを作成できます。これを使用して、曜日または特定の日付のopen
時間または定休日をclosed
、1 日あたりの時間を表示したりできます。
cmixin/business-time のおかげでspatie/opening-hours
Carbon で直接使用できるため、拡張された日付オブジェクトで営業時間機能を直接活用できます。
一連の営業時間は、通常のスケジュールと例外のリストを渡すことによって作成されます。
// Add the use at the top of each file where you want to use the OpeningHours class:
use Spatie OpeningHours OpeningHours ;
$ openingHours = OpeningHours:: create ([
' monday ' => [ ' 09:00-12:00 ' , ' 13:00-18:00 ' ],
' tuesday ' => [ ' 09:00-12:00 ' , ' 13:00-18:00 ' ],
' wednesday ' => [ ' 09:00-12:00 ' ],
' thursday ' => [ ' 09:00-12:00 ' , ' 13:00-18:00 ' ],
' friday ' => [ ' 09:00-12:00 ' , ' 13:00-20:00 ' ],
' saturday ' => [ ' 09:00-12:00 ' , ' 13:00-16:00 ' ],
' sunday ' => [],
' exceptions ' => [
' 2016-11-11 ' => [ ' 09:00-12:00 ' ],
' 2016-12-25 ' => [],
' 01-01 ' => [], // Recurring on each 1st of January
' 12-25 ' => [ ' 09:00-12:00 ' ], // Recurring on each 25th of December
],
]);
// This will allow you to display things like:
$ now = new DateTime ( ' now ' );
$ range = $ openingHours -> currentOpenRange ( $ now );
if ( $ range ) {
echo " It's open since " . $ range -> start (). "n" ;
echo " It will close at " . $ range -> end (). "n" ;
} else {
echo " It's closed since " . $ openingHours -> previousClose ( $ now )-> format ( ' l H:i ' ). "n" ;
echo " It will re-open at " . $ openingHours -> nextOpen ( $ now )-> format ( ' l H:i ' ). "n" ;
}
オブジェクトは曜日に対してクエリでき、定期的なスケジュールに基づいて結果が返されます。
// Open on Mondays:
$ openingHours -> isOpenOn ( ' monday ' ); // true
// Closed on Sundays:
$ openingHours -> isOpenOn ( ' sunday ' ); // false
特定の日付と時刻をクエリすることもできます。
// Closed because it's after hours:
$ openingHours -> isOpenAt ( new DateTime ( ' 2016-09-26 19:00:00 ' )); // false
// Closed because Christmas was set as an exception
$ openingHours -> isOpenOn ( ' 2016-12-25 ' ); // false
1 週間または 1 日の営業時間の配列を返すこともできます。
// OpeningHoursForDay object for the regular schedule
$ openingHours -> forDay ( ' monday ' );
// OpeningHoursForDay[] for the regular schedule, keyed by day name
$ openingHours -> forWeek ();
// Array of day with same schedule for the regular schedule, keyed by day name, days combined by working hours
$ openingHours -> forWeekCombined ();
// OpeningHoursForDay object for a specific day
$ openingHours -> forDate ( new DateTime ( ' 2016-12-25 ' ));
// OpeningHoursForDay[] of all exceptions, keyed by date
$ openingHours -> exceptions ();
建設時に、複数の日にわたるオーバーフロー時間のフラグを設定できます。たとえば、金曜日と土曜日のナイトクラブの営業時間は午前 3 時までです。
$ openingHours = Spatie OpeningHours OpeningHours:: create ([
' overflow ' => true ,
' friday ' => [ ' 20:00-03:00 ' ],
' saturday ' => [ ' 20:00-03:00 ' ],
], null );
これにより、API は前日のデータをさらに参照して、営業時間がその時間範囲内で営業しているかどうかを確認できます。
定義にデータを追加してから、それらを取得できます。
$ openingHours = OpeningHours:: create ([
' monday ' => [
' data ' => ' Typical Monday ' ,
' 09:00-12:00 ' ,
' 13:00-18:00 ' ,
],
' tuesday ' => [
' 09:00-12:00 ' ,
' 13:00-18:00 ' ,
[
' 19:00-21:00 ' ,
' data ' => ' Extra on Tuesday evening ' ,
],
],
' exceptions ' => [
' 2016-12-25 ' => [
' data ' => ' Closed for Christmas ' ,
],
],
]);
echo $ openingHours -> forDay ( ' monday ' )-> data ; // Typical Monday
echo $ openingHours -> forDate ( new DateTime ( ' 2016-12-25 ' ))-> data ; // Closed for Christmas
echo $ openingHours -> forDay ( ' tuesday ' )[ 2 ]-> data ; // Extra on Tuesday evening
上の例ではデータは文字列ですが、どのような種類の値でも構いません。したがって、配列に複数のプロパティを埋め込むことができます。
構造の便宜上、データ時間の組み合わせは完全連想配列にすることができるため、上記の例は次の例と厳密に等価です。
$ openingHours = OpeningHours:: create ([
' monday ' => [
' hours ' => [
' 09:00-12:00 ' ,
' 13:00-18:00 ' ,
],
' data ' => ' Typical Monday ' ,
],
' tuesday ' => [
[ ' hours ' => ' 09:00-12:00 ' ],
[ ' hours ' => ' 13:00-18:00 ' ],
[ ' hours ' => ' 19:00-21:00 ' , ' data ' => ' Extra on Tuesday evening ' ],
],
// Open by night from Wednesday 22h to Thursday 7h:
' wednesday ' => [ ' 22:00-24:00 ' ], // use the special "24:00" to reach midnight included
' thursday ' => [ ' 00:00-07:00 ' ],
' exceptions ' => [
' 2016-12-25 ' => [
' hours ' => [],
' data ' => ' Closed for Christmas ' ,
],
],
]);
区切り文字を使用して、週または例外の複数の日を一度to
指定できます。
$ openingHours = OpeningHours:: create ([
' monday to friday ' => [ ' 09:00-19:00 ' ],
' saturday to sunday ' => [],
' exceptions ' => [
// Every year
' 12-24 to 12-26 ' => [
' hours ' => [],
' data ' => ' Holidays ' ,
],
// Only happening in 2024
' 2024-06-25 to 2024-07-01 ' => [
' hours ' => [],
' data ' => ' Closed for works ' ,
],
],
]);
最後の構造ツールはフィルターです。これを使用すると、日付をパラメーターとして受け取り、指定された日付の設定を返すクロージャー (または呼び出し可能な関数/メソッド参照) を渡すことができます。
$ openingHours = OpeningHours:: create ([
' monday ' => [
' 09:00-12:00 ' ,
],
' filters ' => [
function ( $ date ) {
$ year = intval ( $ date -> format ( ' Y ' ));
$ easterMonday = new DateTimeImmutable ( ' 2018-03-21 + ' .( easter_days ( $ year ) + 1 ). ' days ' );
if ( $ date -> format ( ' m-d ' ) === $ easterMonday -> format ( ' m-d ' )) {
return []; // Closed on Easter Monday
// Any valid exception-array can be returned here (range of hours, with or without data)
}
// Else the filter does not apply to the given date
},
],
]);
呼び出し可能オブジェクトが"exceptions"
プロパティで見つかった場合、その呼び出し可能オブジェクトはフィルターに自動的に追加されるため、フィルターと例外を例外配列の両方に混在させることができます。 null 以外の値を返す最初のフィルターは次のフィルターよりも優先され、フィルター配列は例外配列内のフィルターよりも優先されます。
警告: 営業時間を取得する必要がある日付ごとにすべてのフィルターをループしますが、結果を述語したりキャッシュしたりすることはできません (ランダム関数の可能性があります)。そのため、フィルターの使用、フィルターの多すぎ、またはフィルター内の処理の長時間化に注意する必要があります。パフォーマンスに大きな影響を与える可能性があります。
指定されたDateTime
から次の開始または終了DateTime
を返すこともできます。
// The next open datetime is tomorrow morning, because we’re closed on 25th of December.
$ nextOpen = $ openingHours -> nextOpen ( new DateTime ( ' 2016-12-25 10:00:00 ' )); // 2016-12-26 09:00:00
// The next open datetime is this afternoon, after the lunch break.
$ nextOpen = $ openingHours -> nextOpen ( new DateTime ( ' 2016-12-24 11:00:00 ' )); // 2016-12-24 13:00:00
// The next close datetime is at noon.
$ nextClose = $ openingHours -> nextClose ( new DateTime ( ' 2016-12-24 10:00:00 ' )); // 2016-12-24 12:00:00
// The next close datetime is tomorrow at noon, because we’re closed on 25th of December.
$ nextClose = $ openingHours -> nextClose ( new DateTime ( ' 2016-12-25 15:00:00 ' )); // 2016-12-26 12:00:00
完全な API については、使用法のセクションをお読みください。
Spatie は、ベルギーのアントワープに拠点を置くウェブデザイン会社です。当社のすべてのオープンソース プロジェクトの概要は、当社の Web サイトでご覧いただけます。
私たちはクラス最高のオープンソース パッケージの作成に多くのリソースを投資しています。有料製品のいずれかを購入することで、私たちをサポートできます。
当社のどのパッケージを使用しているかについて、故郷から葉書を送っていただき、誠にありがとうございます。当社の住所は、お問い合わせページに記載されています。受け取ったすべてのポストカードをバーチャル ポストカード ウォールに公開します。
パッケージは、composer 経由でインストールできます。
composer require spatie/opening-hours
パッケージは、 OpeningHours
クラスを通じてのみ使用する必要があります。また、全体で使用される 3 つの値オブジェクト クラスもあります。1 つは単一の時刻を表すTime
、開始と終了のある期間を表すTimeRange
、および重複できない一連のTimeRange
を表すopeningHoursForDay
です。
SpatieOpeningHoursOpeningHours
OpeningHours::create(array $data, $timezone = null, $toutputTimezone = null): SpatieOpeningHoursOpeningHours
営業時間のセットを埋めるための静的なファクトリ メソッド。
$ openingHours = OpeningHours:: create ([
' monday ' => [ ' 09:00-12:00 ' , ' 13:00-18:00 ' ],
// ...
]);
タイムゾーンが指定されていない場合、 OpeningHours
スケジュールに一致するタイムゾーンを持つDateTime
オブジェクトを常に渡すものとみなします。
$timezone
2 番目の引数として、または配列キー'timezone'
( DateTimeZone
オブジェクトまたはstring
のいずれか) を介して渡す場合、渡された日付は各メソッドの先頭でこのタイムゾーンに変換されます。このメソッドは日付オブジェクト ( nextOpen
、 nextClose
、 previousOpen
、 previousClose
、 currentOpenRangeStart
、またはcurrentOpenRangeEnd
など) を返します。その後、オブジェクトが日付を反映できるように、出力前に元のタイムゾーンに変換されます。ユーザーの現地時間での瞬間ですが、 OpeningHours
独自のビジネス タイムゾーンに固執することができます。
あるいは、(2 番目と 3 番目の引数を使用して) 入力と出力の両方のタイムゾーンを指定するか、配列を使用することもできます。
$ openingHours = OpeningHours:: create ([
' monday ' => [ ' 09:00-12:00 ' , ' 13:00-18:00 ' ],
' timezone ' => [
' input ' => ' America/New_York ' ,
' output ' => ' Europe/Oslo ' ,
],
]);
OpeningHours::mergeOverlappingRanges(array $schedule) : array
安全のため、営業時間の配列定義で明示的に'overflow' => true,
範囲が重複するOpeningHours
オブジェクトを作成すると例外がスローされます。それらを明示的にマージすることもできます。
$ ranges = [
' monday ' => [ ' 08:00-11:00 ' , ' 10:00-12:00 ' ],
];
$ mergedRanges = OpeningHours:: mergeOverlappingRanges ( $ ranges ); // Monday becomes ['08:00-12:00']
OpeningHours:: create ( $ mergedRanges );
// Or use the following shortcut to create from ranges that possibly overlap:
OpeningHours:: createAndMergeOverlappingRanges ( $ ranges );
すべての日が必須ではありません。1 日が欠けている場合、その日は休業日として設定されます。
OpeningHours::fill(array $data): SpatieOpeningHoursOpeningHours
create
と同じですが、非静的です。
$ openingHours = ( new OpeningHours )-> fill ([
' monday ' => [ ' 09:00-12:00 ' , ' 13:00-18:00 ' ],
// ...
]);
OpeningHours::forWeek(): SpatieOpeningHoursOpeningHoursForDay[]
通常の週のOpeningHoursForDay
オブジェクトの配列を返します。
$ openingHours -> forWeek ();
OpeningHours::forWeekCombined(): array
日の配列を返します。配列キーは同じ時間の最初の日、配列値は同じ勤務時間とOpeningHoursForDay
オブジェクトの日です。
$ openingHours -> forWeekCombined ();
OpeningHours::forWeekConsecutiveDays(): array
連結された日、同じ時間の隣接する日の配列を返します。配列キーは同じ時間の最初の日、配列値は同じ勤務時間とOpeningHoursForDay
オブジェクトの日です。
警告: 連続した日は、初期データの日数の順序に関係なく、ループせずに月曜日から日曜日と見なされます (月曜日は日曜日に連続していません)。
$ openingHours -> forWeekConsecutiveDays ();
OpeningHours::forDay(string $day): SpatieOpeningHoursOpeningHoursForDay
通常の日のOpeningHoursForDay
オブジェクトを返します。曜日は英語の曜日名の小文字の文字列です。
$ openingHours -> forDay ( ' monday ' );
OpeningHours::forDate(DateTimeInterface $dateTime): SpatieOpeningHoursOpeningHoursForDay
特定の日付のOpeningHoursForDay
オブジェクトを返します。その日の例外を探し、それ以外の場合は、通常のスケジュールに基づいて営業時間を返します。
$ openingHours -> forDate ( new DateTime ( ' 2016-12-25 ' ));
OpeningHours::exceptions(): SpatieOpeningHoursOpeningHoursForDay[]
Ymd
日付文字列をキーとした、例外のすべてのOpeningHoursForDay
オブジェクトの配列を返します。
$ openingHours -> exceptions ();
OpeningHours::isOpenOn(string $day): bool
通常のスケジュールの日にビジネスが営業しているかどうかを確認します (少なくとも 1 つの範囲の営業時間が含まれています)。
$ openingHours -> isOpenOn ( ' saturday ' );
指定された文字列が日付の場合、通常のスケジュールと考えられる例外の両方を考慮して、営業しているかどうか (少なくとも 1 つの営業時間範囲が含まれているか) がチェックされます。
$ openingHours -> isOpenOn ( ' 2020-09-03 ' );
$ openingHours -> isOpenOn ( ' 09-03 ' ); // If year is omitted, current year is used instead
OpeningHours::isClosedOn(string $day): bool
通常のスケジュールで営業日が休業日かどうかを確認します。
$ openingHours -> isClosedOn ( ' sunday ' );
OpeningHours::isOpenAt(DateTimeInterface $dateTime): bool
特定の日、特定の時間に営業しているかどうかを確認します。
$ openingHours -> isOpenAt ( new DateTime ( ' 2016-26-09 20:00 ' ));
OpeningHours::isClosedAt(DateTimeInterface $dateTime): bool
特定の日、特定の時間に営業が終了しているかどうかを確認します。
$ openingHours -> isClosedAt ( new DateTime ( ' 2016-26-09 20:00 ' ));
OpeningHours::isOpen(): bool
現在営業しているかどうかを確認します。
$ openingHours -> isOpen ();
OpeningHours::isClosed(): bool
現在閉店しているかどうかを確認します。
$ openingHours -> isClosed ();
OpeningHours::isAlwaysOpen(): bool
ビジネスが 24 時間 365 日営業しているかどうか、例外やフィルターがないことを確認します。
if ( $ openingHours -> isAlwaysOpen ()) {
echo ' This business is open all day long every day. ' ;
}
OpeningHours::isAlwaysClosed(): bool
ビジネスが決して開いていないか、例外やフィルターがないかどうかを確認します。
OpeningHours
偏見なく、すべての曜日が空の空の配列またはリストを受け入れます。
ドメインで有効な状態ではない場合は、このメソッドを使用して例外をスローするか、エラーを表示する必要があります。
if ( $ openingHours -> isAlwaysClosed ()) {
throw new RuntimeException ( ' Opening hours missing ' );
}
OpeningHours::nextOpen
OpeningHours::nextOpen(
?DateTimeInterface $ dateTime = null ,
?DateTimeInterface $ searchUntil = null ,
?DateTimeInterface $ cap = null ,
) : DateTimeInterface`
指定されたDateTime
( $dateTime
またはこのパラメータが null または省略された場合は今から) から次に開いているDateTime
を返します。
DateTimeImmutable
オブジェクトが渡されると、 DateTimeImmutable
オブジェクトが返されます。
$searchUntil
日付に設定すると、この時点より前にオープン時間が見つからない場合に例外がスローされます。
$cap
日付に設定すると、この時点より前にオープン時間が見つからない場合は$cap
が返されます。
$ openingHours -> nextOpen ( new DateTime ( ' 2016-12-24 11:00:00 ' ));
OpeningHours::nextClose
OpeningHours::nextClose(
?DateTimeInterface $ dateTime = null ,
?DateTimeInterface $ searchUntil = null ,
?DateTimeInterface $ cap = null ,
) : DateTimeInterface`
指定されたDateTime
( $dateTime
またはこのパラメーターが null または省略された場合は今から) から次の終了DateTime
を返します。
DateTimeImmutable
オブジェクトが渡されると、 DateTimeImmutable
オブジェクトが返されます。
$searchUntil
日付に設定すると、この時点より前に閉店時間が見つからない場合に例外がスローされます。
$cap
日付に設定すると、この時点より前に閉店時間が見つからない場合は$cap
が返されます。
スケジュールが常に開いているか、常に閉じている場合は、状態の変更が見つからないため、 nextOpen
(ただし、 previousOpen
、 nextClose
、 previousClose
) はMaximumLimitExceeded
スローします。これをキャッチしてそれに応じて反応するか、 isAlwaysOpen
/ isAlwaysClosed
メソッドを使用して予測することができます。そのような場合。
$ openingHours -> nextClose ( new DateTime ( ' 2016-12-24 11:00:00 ' ));
OpeningHours::previousOpen
OpeningHours::previousOpen(
?DateTimeInterface $ dateTime = null ,
?DateTimeInterface $ searchUntil = null ,
?DateTimeInterface $ cap = null ,
) : DateTimeInterface`
指定されたDateTime
( $dateTime
、またはこのパラメーターが null または省略されている場合は現在) から以前のオープンDateTime
を返します。
DateTimeImmutable
オブジェクトが渡された場合、 DateTimeImmutable
オブジェクトが返されます。
$searchUntil
日付に設定すると、この時点以降にオープン時間が見つからない場合に例外がスローされます。
$cap
日付に設定すると、この時点以降にオープン時間が見つからない場合は$cap
が返されます。
$ openingHours -> previousOpen ( new DateTime ( ' 2016-12-24 11:00:00 ' ));
OpeningHours::previousClose
OpeningHours::previousClose(
?DateTimeInterface $ dateTime = null ,
?DateTimeInterface $ searchUntil = null ,
?DateTimeInterface $ cap = null ,
) : DateTimeInterface`
指定されたDateTime
( $dateTime
、またはこのパラメーターが null または省略されている場合は現在) から以前の終了DateTime
を返します。
DateTimeImmutable
オブジェクトが渡されると、 DateTimeImmutable
オブジェクトが返されます。
$searchUntil
日付に設定すると、この時点以降に閉店時間が見つからない場合に例外がスローされます。
$cap
日付に設定すると、この時点以降に閉店時間が見つからない場合は$cap
が返されます。
$ openingHours -> nextClose ( new DateTime ( ' 2016-12-24 11:00:00 ' ));
OpeningHours::diffInOpenHours(DateTimeInterface $startDate, DateTimeInterface $endDate) : float
2 つの日付/時刻の間のオープン時間 (浮動小数点数としての時間数) を返します。
$ openingHours -> diffInOpenHours ( new DateTime ( ' 2016-12-24 11:00:00 ' ), new DateTime ( ' 2016-12-24 16:34:25 ' ));
OpeningHours::diffInOpenMinutes(DateTimeInterface $startDate, DateTimeInterface $endDate) : float
2 つの日付/時刻の間のオープン時間 (浮動小数点としての分数) を返します。
OpeningHours::diffInOpenSeconds(DateTimeInterface $startDate, DateTimeInterface $endDate) : float
2 つの日付/時刻の間のオープン時間 (浮動小数点数としての秒数) を返します。
OpeningHours::diffInClosedHours(DateTimeInterface $startDate, DateTimeInterface $endDate) : float
2 つの日付/時刻の間の閉鎖時間 (浮動小数点数としての時間数) を返します。
$ openingHours -> diffInClosedHours ( new DateTime ( ' 2016-12-24 11:00:00 ' ), new DateTime ( ' 2016-12-24 16:34:25 ' ));
OpeningHours::diffInClosedMinutes(DateTimeInterface $startDate, DateTimeInterface $endDate) : float
2 つの日付/時刻の間の終了時間 (浮動小数点数としての分数) を返します。
OpeningHours::diffInClosedSeconds(DateTimeInterface $startDate, DateTimeInterface $endDate) : float
2 つの日付/時刻の間の終了時間 (浮動小数点数としての秒数) を返します。
OpeningHours::currentOpenRange(DateTimeInterface $dateTime) : false | TimeRange
ビジネスが開いている場合は現在のオープン範囲のSpatieOpeningHoursTimeRange
インスタンスを返し、ビジネスが閉じている場合は false を返します。
$ range = $ openingHours -> currentOpenRange ( new DateTime ( ' 2016-12-24 11:00:00 ' ));
if ( $ range ) {
echo " It's open since " . $ range -> start (). "n" ;
echo " It will close at " . $ range -> end (). "n" ;
} else {
echo " It's closed " ;
}
start()
とend()
メソッドはSpatieOpeningHoursTime
インスタンスを返します。日付から作成されたTime
インスタンスは、日付情報を使用してフォーマットできます。これは範囲が午前 0 時を超える場合に便利です。
$ period = $ openingHours -> currentOpenRange ( new DateTime ( ' 2016-12-24 11:00:00 ' ));
if ( $ period ) {
echo " It's open since " . $ period -> start ()-> format ( ' D Gh ' ). "n" ;
echo " It will close at " . $ period -> end ()-> format ( ' D Gh ' ). "n" ;
} else {
echo " It's closed " ;
}
OpeningHours::currentOpenRangeStart(DateTimeInterface $dateTime) : false | DateTime
ビジネスが開いている場合は、ビジネスが開いてからの日付と時刻のDateTime
インスタンスを返し、ビジネスが閉じている場合は false を返します。
注: 夜間範囲を使用する場合は、日付を前日にすることもできます。
$ date = $ openingHours -> currentOpenRangeStart ( new DateTime ( ' 2016-12-24 11:00:00 ' ));
if ( $ date ) {
echo " It's open since " . $ date -> format ( ' H:i ' );
} else {
echo " It's closed " ;
}
OpeningHours::currentOpenRangeEnd(DateTimeInterface $dateTime) : false | DateTime
営業中の場合は営業時間の日付と時刻のDateTime
インスタンスを返し、営業が終了している場合は false を返します。
注: 夜間範囲を使用する場合は、日付を翌日にすることもできます。
$ date = $ openingHours -> currentOpenRangeEnd ( new DateTime ( ' 2016-12-24 11:00:00 ' ));
if ( $ date ) {
echo " It will close at " . $ date -> format ( ' H:i ' );
} else {
echo " It's closed " ;
}
OpeningHours::createFromStructuredData(array|string $data, $timezone = null, $outputTimezone = null): SpatieOpeningHoursOpeningHours
セットに https://schema.org/OpenHoursSpec 配列または JSON 文字列を入力する静的ファクトリ メソッド。
dayOfWeek
曜日名の配列 (Google 風味) または曜日の URL の配列 (schema.org の公式仕様) をサポートします。
$ openingHours = OpeningHours:: createFromStructuredData ( ' [
{
"@type": "OpeningHoursSpecification",
"opens": "08:00",
"closes": "12:00",
"dayOfWeek": [
"https://schema.org/Monday",
"https://schema.org/Tuesday",
"https://schema.org/Wednesday",
"https://schema.org/Thursday",
"https://schema.org/Friday"
]
},
{
"@type": "OpeningHoursSpecification",
"opens": "14:00",
"closes": "18:00",
"dayOfWeek": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
]
},
{
"@type": "OpeningHoursSpecification",
"opens": "00:00",
"closes": "00:00",
"validFrom": "2023-12-25",
"validThrough": "2023-12-25"
}
] ' );
OpeningHours::asStructuredData(strinf $format = 'H:i', string|DateTimeZone $timezone) : array
opensHoursSpec を配列として返します。
$ openingHours -> asStructuredData ();
$ openingHours -> asStructuredData ( ' H:i:s ' ); // Customize time format, could be 'h:i a', 'G:i', etc.
$ openingHours -> asStructuredData ( ' H:iP ' , ' -05:00 ' ); // Add a timezone
// Timezone can be numeric or string like "America/Toronto" or a DateTimeZone instance
// But be careful, the time is arbitrary applied on 1970-01-01, so it does not handle daylight
// saving time, meaning Europe/Paris is always +01:00 even in summer time.
SpatieOpeningHoursOpeningHoursForDay
このクラスは読み取り専用です。 ArrayAccess
、 Countable
、 IteratorAggregate
を実装しているため、配列のような方法でTimeRange
のリストを処理できます。
SpatieOpeningHoursTimeRange
開始時刻と終了時刻を含む期間を記述する値オブジェクト。 H:iH:i
形式の文字列にキャストできます。
SpatieOpeningHoursTime
単一の時刻を記述する値オブジェクト。 H:i
形式の文字列にキャストできます。
osm-opening-hours を使用して OpenStreetMap 形式をOpeningHours
オブジェクトに変換できます (mgrundkoetter に感謝)
最近の変更点の詳細については、CHANGELOG を参照してください。
composer test
詳細については、「貢献」を参照してください。
セキュリティに関するバグを見つけた場合は、問題トラッカーを使用する代わりに [email protected] にメールを送信してください。
このパッケージを自由に使用できますが、実稼働環境に届いた場合は、どのパッケージを使用しているかを記載した葉書を故郷から送っていただければ幸いです。
私たちの住所は、Spatie, Kruikstraat 22, 2018 Antwerp, Belgiumです。
いただいたはがきはすべて当社ホームページに掲載しております。
MIT ライセンス (MIT)。詳細については、ライセンス ファイルを参照してください。