<ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body><![CDATA[
<ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body><![CDATA[
This helper calculates the time passed from timestamps to generate a formatted string like "5 days and 4 hours". Applications of this helper are generally seen in "Created 2 weeks ago" or "Last modified 5 minutes ago" type lines.
Units supported are years, months, weeks, days, minutes, seconds. String format is the largest possible unit and if possible the unit below it. If a 1 year and 2 weeks have passed then "1 year" is the output; however, if 1 year, 2 months and 5 days have passed then "1 year and 2 months" is returned. If less than a second have passed then "less than a second" is returned. Output is automatically translated if possible using Zend_View_Helper_Translate. The translation format is '%d months'. An already completed gettext pot file is located on Zym's demo in the data locale folder.Zend Framework: Zend_View_Helper_TimeSince Component Proposal
Proposed Component Name
Zend_View_Helper_TimeSince
Developer Notes
http://framework.zend.com/wiki/display/ZFDEV/Zend_View_Helper_TimeSince
Proposers
Geoffrey Tran (Google+)
Zend Liaison
TBD
Revision
1.0 - 1 January 2008: Initial Draft. (wiki revision: 6)
Table of Contents
1. Overview
2. References
3. Component Requirements, Constraints, and Acceptance Criteria
- This component will extend Zend_View_Helper_Abstract
- This component will allow the use of translation
- This component will format a date using a timestamp
4. Dependencies on Other Framework Components
- Zend_View_Helper_Abstract
- Zend_View_Helper_Translate
5. Theory of Operation
Calculates time passed since a specified time.
6. Milestones / Tasks
- Milestone 1: [DONE] Proposal creation
- Milestone 2: [DONE] Working Code, Documentation, Tests
- Milestone 3: Working prototype checked into the incubator.
- Milestone 4: Unit tests exist, work, and are checked into SVN.
- Milestone 5: Initial documentation exists.
7. Class Index
- Zend_View_Helper_TimeSince
8. Use Cases
| UC-01 |
|---|
10 Comments
comments.show.hideFeb 19, 2009
Robin Skoglund
<p>Requesting community feedback.</p>
Feb 26, 2009
Thomas Weidner
<p>*) Translation is with the actual class skeleton not possible as you can't define when to return a translateable string and when an normal string.</p>
<p>*) Units could automatically be translated... it's all available within ZF. No need to let the user alone with this task.</p>
<p>*) You should also accept input of Zend_Date and Datestring.</p>
Feb 26, 2009
Till Klampaeckel
<p>+1 <ac:emoticon ac:name="smile" /></p>
Feb 26, 2009
Giorgio Sironi
<p>It seems useful... To get times a la Facebook.. I wiould use it.</p>
Mar 03, 2009
Baptiste Placé
<p>Good idea, it would be nice to have the pattern string translatable. Zend_Translate instance would be used with Zend_Registry::get('Zend_Translate') like is it in Zend_Validate_Abstract.</p>
Mar 03, 2009
Thomas Weidner
<p>That's not enough. You must also be able to set the instance manually to override the application wide locale setting (key Zend_Locale) and also to set the instance manually when no set key is available.</p>
Mar 03, 2009
Geoffrey Tran
<p>yes I agree, it should allow all of those.</p>
Mar 25, 2009
Martin Hujer
<p>Good job! Looks better then my <a class="external-link" href="http://framework.zend.com/wiki/display/ZFPROP/Zend_View_Helper_HumanTime+-+Martin+Hujer">http://framework.zend.com/wiki/display/ZFPROP/Zend_View_Helper_HumanTime+-+Martin+Hujer</a> <ac:emoticon ac:name="smile" /></p>
Mar 25, 2009
Martin Hujer
<p>It may be good to provide some translations out-of-box.</p>
Jul 14, 2009
Matthew Weier O'Phinney
<ac:macro ac:name="note"><ac:parameter ac:name="title">Zend Framework Approval</ac:parameter><ac:rich-text-body>
<p>This proposal is accepted for immediate development in the Standard Incubator,<br />
with the following criteria:</p>
<ul>
<li>Allow passing Zend_Date and DateTime objects</li>
<li>Use existing i18n and l10n components for translating units</li>
</ul>
</ac:rich-text-body></ac:macro>