![]() |
|
sfDateTime2Plugin - 0.9.0Date manipulation library. |
|
![]() |
58
users
Sign-in
to change your status |
Date manipulation library. |
This plugin will add a date manipulation library to the symfony framework.
| Name | Status | |
|---|---|---|
|
|
lead | moc.liamg <<ta>> enneite.emorej |
Copyright (c) 2008 Jerome Etienne
Copyright (c) 2007 Stephen Riesenberg
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
| Version | License | API | Released |
|---|---|---|---|
| 0.9.0stable | MIT license | 0.9.0stable | 24/04/2009 |
| 0.3.0beta | MIT license | 0.3.0beta | 27/11/2008 |
| 0.0.6stable | MIT license | 0.0.6stable | 02/04/2009 |
| 0.0.5stable | MIT license | 0.0.5stable | 01/04/2009 |
| 0.0.4alpha | MIT license | 0.0.4alpha | 30/01/2009 |
| Version | License | API | Released |
|---|---|---|---|
| 0.3.0beta | MIT license | 0.3.0beta | 27/11/2008 |
This plugin has been mainly written by Stephen Riesenberg. I merely maintains it (fixing minor bugs, porting to sf1.1 and a few feature enhancements)
This plugin will add a date manipulation library to the symfony framework. The library manipulates timestamp values, allowing you to quickly translate a date into another date based on an infinite number of operations. The library contains a base add function, which handles all cases of a single date manipulation. It also contains a large number of other functions based on the add function, which faciliate more complicated operations. Finally, the library contains an instantiable class, which provides an interface hook into the main library allowing chainable date manipulation operations for more readable code.
To install sfDateTimePlugin:
symfony plugin-install symfony/sfDateTimePlugin
or
svn co http://svn.symfony-project.com/plugins/sfDateTime2Plugin plugins/sfDateTime2Plugin
Clear your cache
symfony cc
You're done!
Examples which dump their results to a datetime.
<?php // defaults to now $dt = new sfDate(); // accepts existing sfDate object $dt = new sfDate($dt); // accepts a timestamp integer, like from time() or mktime() $dt = new sfDate(1176856745); // parses date from a string using strtotime $dt = new sfDate('2007-04-17 19:39:05'); echo $dt->firstDayOfWeek()->tomorrow()->dump(); // => 2007-04-16 19:39:05 echo $dt->addYear()->subtractQuarter()->dump(); // => 2008-01-16 19:39:05 echo $dt->finalDayOfQuarter()->clearTime()->dump(); // => 2008-03-31 00:00:00 echo $dt->finalDayOfYear()->subtractWeek(4)->addDay(5)->dump(); // => 2008-12-08 00:00:00 echo $dt->reset()->dump(); // => 2007-04-17 19:39:05
The I18N date helpers are integrated directly into the library.
<!-- <?php use_helper('Date') ?> is not necessary in this case --> Next sunday in your language: <?php echo sfDate::getInstance()->firstDayOfWeek()->addWeek()->date() ?> Last thursday in your language: <?php echo sfDate::getInstance()->previousDay(sfTime::THURSDAY)->date() ?> Now in your language: <?php echo sfDate::getInstance()->datetime() ?>
Constants are available through the sfTime class (as in sfTime::CONSTANT_NAME):
The following functions are available to an instantiated sfDate object, and are chainable:
The following functions are available to an instantiated sfDate object, and are not chainable:
The following functions are available to the sfDate class, and are chainable:
The following functions are available to the sfDate class, and are not chainable: * from_system: * convert a string from the system string format * aliased to ::s2o (standing for system to object) * from_database: * convert a string from the database string format * aliased to ::d2o * from_human: * convert a string from the human string format * aliased to ::h2o * s2h: * convert a string from the system, so 's', format to the human, so 'h', format * s2d: * convert a string from the system, so 's', format to the database, so 'd', format * d2s, d2h, h2s, h2d: * similar to s2h, s2d * isHoliday($culture), isHollidayFR() * return true if the day is an holiday (currently only the FR culture is implemented. patches for other $culture are more than welcomed.) * added sfDate::getSecond(), sfDate::getMinute etc... (only shortcut on sfDate::retrieve) * added sfDate::dayOfWeek() return the day of the week according to sfTime::MONDAY to sfTime::SUNDAY constants
About the string format: Various functions handle string formats to represent sfDate e.g sfDate::from_human() or $mySfDate->format_human() This format is configurable in app.yml. They are expressed according to [strptime]/http://php.net/strftime strftime formats. If not specified, they all default %Y-%m-%d. See below an example of app.yml:
all:
sfDateTimePlugin:
format_human: %d/%m/%Y
format_database: %Y-%m-%d
format_system: %d/%m/%Y
NOTE: All parameters are optional and default to logical values (1 for numbers, DAY for units of time, SUNDAY for days of week, JANUARY for months of year).
NOTE: When using the sfTime function library itself, the first parameter of every function is a timestamp. When using an instantiated sfDate, the timestamp parameter is automatically passed in.
For the full copyright and license information, please view the LICENSE file that was distributed with this source code.
