Hi Koen,

Agavi has its complete own date and time handling supporting dates 
ranging from 50000 B.C. to 50000 A.D. in millisecond precision. To 
achieve this we ported the calendar part of the ICU Library 
(www.icu-project.org) to PHP. Thats the library which handles the 
unicode support in php 6 in the background.

Our calendar class supports the most stuff you would expect.
You can create new calendar objects initialized with the current time 
using $translation_manager->createCalendar(). The most important methods 
of the calendar are set(field, value) and get(field) which should be 
used with the constants defined in AgaviDateDefinitions.

$cal = $tm->createCalendar();
$cal->set(AgaviDateDefinitions::MONTH, AgaviDateDefinitions::FEBURARY);
$cal->set(AgaviDateDefinitions::DATE, 7);
$cal->get(AgaviDateDefinitions::DATE); // 7
...

The phpdocs of AgaviCalendar explains the stuff quite well. The most 
important methods to look for are get, set, roll, add, before, after and 
fieldDifference.

Of course you can define custom formats as well. How the format string 
should look like is described in the ldml specification 
http://www.unicode.org/reports/tr35/#Date_Format_Patterns

While you _can_ override any format from a locale we have implemented 
some better way to do that. You can let the format parameter of the 
date_formatter configuration be translated in a custom domain. In 
combination with the SimpleTranslator you can therefor define your 
different date formats centrally for all languages on the 
translation.xml. Note that the result of the translation can be one of 
the standard pattern identifiers (short, medium, long, full)

Here is small sample how it should look like

<translator domain="dates">
  <message_translator class="AgaviSimpleTranslator">
   <parameter name="my_dates">
    <parameter name="de_DE">
     <parameter name="my_format">dd.MM.yyyy G 'um' HH:mm:ss zzz</parameter>
    </parameter>
    <parameter name="en_US">
     <parameter name="my_format">long</parameter>
    </parameter>
   </parameter>
  </message_translator>
</translator>

<translator domain="default">
  <date_formatter translation_domain="dates.my_dates">
   <parameters>
    <parameter name="type">datetime</parameter>
    <parameter name="format">my_format</parameter>
   </parameters>
  </date_formatter>
</translator>

i hope that helps a bit, if you have any further questions don't 
hesitate to ask

regards,
Dominik


Van Daele, Koen wrote:
> Hi,
> 
> Is there any info on the date - time capabilities of Agavi?
> 
> I've managed to get a localised date by doing (in a template): echo
> $tm->_d($date);
> 
> Can I specify a certain format or can I only use the formats specified
> in the locale files? Can I e.g. override the medium format for a locale?



_______________________________________________
users mailing list
[email protected]
http://lists.agavi.org/mailman/listinfo/users

Reply via email to