IntlCalendar::isLenient

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::isLenientWhether date/time interpretation is in lenient mode

Beschreibung

Objektorientierter Stil

public IntlCalendar::isLenient ( void ) : bool

Prozeduraler Stil

intlcal_is_lenient ( IntlCalendar $cal ) : bool

Returns whether the current date/time interpretations is lenient (the default). If that is case, some out of range values for fields will be accepted instead of raising an error.

Parameter-Liste

cal

The IntlCalendar resource.

Rückgabewerte

A bool representing whether the calendar is set to lenient mode.

Beispiele

Beispiel #1 IntlCalendar::isLenient()

<?php
ini_set
('date.timezone''Europe/Lisbon');
ini_set('intl.default_locale''pt_PT');
ini_set('intl.use_exceptions''1');

$cal = new IntlGregorianCalendar(2013/* July */1);
var_dump(IntlDateFormatter::formatObject($cal), // 01/07/2013, 00:00:00
$cal->isLenient()); // true

$cal->set(IntlCalendar::FIELD_DAY_OF_MONTH33);
var_dump(IntlDateFormatter::formatObject($cal)); // 02/08/2013, 00:00:00

$cal->setLenient(false);
var_dump($cal->isLenient()); // false
$cal->set(IntlCalendar::FIELD_DAY_OF_MONTH33);
var_dump(IntlDateFormatter::formatObject($cal)); // error

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(20) "01/07/2013, 00:00:00"
bool(true)
string(20) "02/08/2013, 00:00:00"
bool(false)

Fatal error: Uncaught exception 'IntlException' with message 'datefmt_format_object: error obtaining instant from IntlCalendar' in /home/foobar/example.php:16
Stack trace:
#0 /home/foobar/example.php(16): IntlDateFormatter::formatObject(Object(IntlGregorianCalendar))
#1 {main}
  thrown in /home/foobar/example.php on line 16