Commit graph

86 commits

Author SHA1 Message Date
Gustavo André dos Santos Lopes
eb346ef0f4 DateFormat plays nice with Calendar, TimeZone
The following changes were made:

* The IntlDateFormatter constructor now accepts the usual values
  for its $timezone argument. This includes timezone identifiers,
  IntlTimeZone objects, DateTimeZone objects and NULL. An empty
  string is not accepted. An invalid time zone is no longer accepted
  (it used to use UTC in this case).
* When NULL is passed to IntlDateFormatter, the time zone specified in
  date.timezone is used instead of the ICU default.
* The IntlDateFormatter $calendar argument now accepts also an
  IntlCalendar. In this case, IntlDateFormatter::getCalendar() will
  return false.
* The time zone passed to the IntlDateFormatter is ignored if it is
  NULL and if the calendar passed is an IntlCalendar object -- in this
  case, the IntlCalendar time zone will be used instead. Otherwise,
  the time zone specified in the $timezone argument is used instead.
* Added IntlDateFormatter::getCalendarObject(), which always returns
  the IntlCalendar object that backs the DateFormat, even if a
  constant was passed to the constructor, i.e., if an IntlCalendar
  was not passed to the constructor.
* Added IntlDateFormatter::setTimeZone(). It accepts the usual values
  for time zone arguments. If NULL is passed, the time zone of the
  IntlDateFormatter WILL be overridden with the default time zone,
  even if an IntlCalendar object was passed to the constructor.
* Added IntlDateFormatter::getTimeZone(), which returns the time zone
  that's associated with the DateFormat.
* Depreacated IntlDateFormatter::setTimeZoneId() and made it an alias
  for IntlDateFormatter::setTimeZone(), as the new ::setTimeZone()
  also accepts plain identifiers, besides other types.
  IntlDateFormatter::getTimeZoneId() is not deprecated however.
* IntlDateFormatter::setCalendar() with a constant passed should now
  work correctly. This requires saving the requested locale to the
  constructor.
* Centralized the hacks required to avoid compilation disasters on
  Windows due to some headers being included inside and outside of
  extern "C" blocks.
2012-06-04 00:01:48 +02:00
Gustavo André dos Santos Lopes
3a81f90ebc Added IntlCalendar::toDateTime() 2012-05-17 23:18:51 +02:00
Gustavo André dos Santos Lopes
4cfd9995da Added IntlTimeZone::fromDateTimeZone() and ::toDateTimeZone.
IntlTimeZone::fromDateTimeZone(DateTimeZone $dtz) converts from an
ext/date TimeZone to an IntlTimeZone. The conversion is done by feeding
the time zone name (essentially what would be given by
DateTimeZone::getName()) to ICU's TimeZone::createTimeZone except if it's
an offset time zone. In that case, the offset is read from the ext/date
time zone object structure and an appopriate id (of the form
GMT<+|-><HH:MM>) is given to ICU's TimeZone::createTimeZone. Not all
ext/date time zones are recognized for ICU. For instance, WEST is not.
Note that these kind of abbreviations, as far as I can tell, can only be
created via ext/date DateTime, not directly through DateTimeZone's
constructor.

For IntlTimeZone::toDateTimeZone(), the behavior is symmetrical.
We instantiate a DateTimeZone and then call its constructor if we don't
have an offset time zone, otherwise we mess with its structure. If the
timezone is not valid for ext/date, then we allow the exception of
DateTimeZone constructor to propagate.
2012-05-17 17:23:51 +02:00
Gustavo André dos Santos Lopes
81278e1bbb Added IntlCalendar::fromDateTime()
IntlCalendar::fromDateTime(DateTime|string $dateTime[, string $locale)
intlcal_from_date_time(...)

If a string is given as the first argument, the method will try to
instantiate a new DateTime object and use that instead.
2012-05-17 17:23:47 +02:00
Gustavo André dos Santos Lopes
9a35d45a5b Accept DateTimeZone where time zones are expected.
Also unified timezone handling in IntlCalendar::setTimeZone()
to that in the IntlCalendar and IntlGregorianCalendar constructors.
2012-05-17 17:23:46 +02:00
Gustavo André dos Santos Lopes
95fbae891a Compatibility with old versions of ICU (4.0+). 2012-04-01 23:28:01 +01:00
Gustavo André dos Santos Lopes
69f75bb43c Added support for new method TimeZone::getUnknown() added in ICU 49. 2012-04-01 23:28:00 +01:00
Gustavo André dos Santos Lopes
d3a29c108b Supported Calendar methods new to ICU 49. 2012-04-01 23:28:00 +01:00
Gustavo André dos Santos Lopes
5e65205a8f Initial checkin of calendar/timezone code. 2012-04-01 23:28:00 +01:00
Gustavo André dos Santos Lopes
10324891f8 - Added the ability for the intl exception to throw exceptions when a global error is set. 2012-01-08 18:41:53 +00:00
Gustavo André dos Santos Lopes
5fa1cfbbe6 - Support for UTS #46. 2011-11-24 17:54:50 +00:00
Gustavo André dos Santos Lopes
fa4fe63944 - Support for UTS #46. 2011-11-24 17:54:50 +00:00
Felipe Pena
23e438594d - Make usage of new PHP_FE_END macro 2011-07-25 11:42:53 +00:00
Felipe Pena
4b30846b50 - Make usage of new PHP_FE_END macro 2011-07-25 11:35:02 +00:00
Felipe Pena
da376383e8 - Make usage of new PHP_FE_END macro 2011-07-25 11:35:02 +00:00
Ilia Alshanetsky
00a6dd29b7 Show ICU Data version inside phpinfo() 2011-06-03 18:14:36 +00:00
Ilia Alshanetsky
31b91d7cdb Show ICU Data version inside phpinfo() 2011-06-03 18:14:36 +00:00
Ilia Alshanetsky
53b6c0c8eb Show ICU Data version inside phpinfo() 2011-06-03 18:14:36 +00:00
Ilia Alshanetsky
e6c9a31c54 Implemented FR #54561 (Expose ICU Version & ICU Data Version info). 2011-06-01 16:26:21 +00:00
Ilia Alshanetsky
b8ffccb3ab Implemented FR #54561 (Expose ICU Version & ICU Data Version info). 2011-06-01 16:26:21 +00:00
Ilia Alshanetsky
ccd3633b5c Implemented FR #54561 (Expose ICU Version & ICU Data Version info). 2011-06-01 16:26:21 +00:00
Pierre Joye
71f5af6c70 - fix build with ICU < 4.2, add ICU_VERSION for m4 checks 2011-02-15 08:28:03 +00:00
Scott MacVicar
d90394851c Add Spoofchecker to intl extension.
Implements part of Unicode TR36 and TR39
2011-01-13 06:53:09 +00:00
Gustavo André dos Santos Lopes
e283f7a7fe - Added support for ICU Transformations (Transliterator).
- Changes request #52986 to "to be documented".
2010-10-06 18:53:27 +00:00
Stanislav Malyshev
8f4337f255 add ICU resource bundle support, contributed by Hans-Peter Oeri 2010-01-04 21:44:45 +00:00
Stanislav Malyshev
65c1421f3f add collator_get_sort_key() 2009-10-26 22:35:48 +00:00
Stanislav Malyshev
e865c0b4ee merge errors support 2009-07-07 21:25:46 +00:00
Pierre Joye
503779eb17 - [DOC] add IDN support, idn_to_ascii and idn_to_utf8
tests and MFB will follow Wednesday
2009-01-26 22:30:57 +00:00
Felipe Pena
fc2fb50d09 - MFH: Added 'static' into ZEND_BEGIN_ARG_INFO_EX macro 2008-11-17 11:28:01 +00:00
Felipe Pena
7a37fa2d6b - Revert ZEND_BEGIN_ARG_INFO change 2008-11-02 21:19:39 +00:00
Felipe Pena
df10005563 - MFH: Added 'static' into ZEND_BEGIN_ARG_INFO_EX macro 2008-10-24 14:35:40 +00:00
Felipe Pena
eb1837d9de MFH:
- Added arginfo
- Fixed WS
- Changed C++ comments to C comments
2008-08-11 19:48:00 +00:00
Stanislav Malyshev
775502f7e9 add acceptFromHttp 2008-07-23 01:15:33 +00:00
Stanislav Malyshev
bdc0acdd77 add icu version to phpinfo 2008-07-14 07:16:24 +00:00
Stanislav Malyshev
f787963056 fix date formatter positions (bug #14263) 2008-07-10 21:58:02 +00:00
Stanislav Malyshev
0d16b1516b Merge intl extension into core 2008-07-07 22:51:04 +00:00