IntlCalendar::fromDateTime
(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a2)
IntlCalendar::fromDateTime — DateTime オブジェクトまたは文字列から、IntlCalendar を作成する
説明
オブジェクト指向型
public static IntlCalendar::fromDateTime(DateTime|string
$datetime
, ?string $locale
= null
): ?IntlCalendar手続き型
DateTime オブジェクト または、 DateTime オブジェクトを作成できる文字列から、 IntlCalendar を生成します。
新しいカレンダーオブジェクトは、 指定された DateTime と同じ瞬間 (とても遠い過去または未来の日付の場合、精度が失われることがあります) を表すだけでなく、 同じタイムゾーンも保持します。 (但し、異なるタイムゾーンのデータベースを使った場合、 結果が異なる場合があることにも注意して下さい)
パラメータ
datetime
-
DateTime オブジェクト または、 DateTime::__construct() に渡すことができる文字列。
戻り値
IntlCalendar
オブジェクトを返します。失敗した場合は null
を返します。
文字列を渡した場合、
DateTime のコンストラクタから伝播する形で、
例外がスローされる可能性があります。
例
例1 IntlCalendar::fromDateTime()
<?php
ini_set('date.timezone', 'Europe/Lisbon');
//same as IntlCalendar::fromDateTime(new DateTime(...))
$cal1 = IntlCalendar::fromDateTime('2013-02-28 00:01:02 Europe/Berlin');
//Note the timezone is Europe/Berlin, not the default Europe/Lisbon
echo IntlDateFormatter::formatObject($cal1, 'yyyy MMMM d HH:mm:ss VVVV', 'de_DE'), "\n";
上の例の出力は以下となります。
2013 Februar 28 00:01:02 Deutschland Zeit
+add a note
User Contributed Notes 1 note
SenseException ¶
10 years ago
Don't forget that fromDateTime() doesn't set any locale and that the default one will be set. In my case it was en_US_POSIX.
If you wan't to create a IntlCalendar object containing the values of a DateTime object with your locale, use createInstance() instead and do a
<?php
$intlCalendar->setTime($dateTime->getTimestamp() * 1000);
?>
IntlCalendar works with milliseconds so you need to multiply the timestamp with 1000.
Using fromDateTime() can cause unwanted behaviour like getFirstDayOfWeek() returning a wrong integer.
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google