Просмотр файла manual-ru/tips.dates.html

Размер файла: 5.62Kb
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  4. <title>Даты</title>
  5. <meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
  6. <link rel="home" href="index.html" title="Руководство по Smarty">
  7. <link rel="up" href="tips.html" title="Chapter 18. Советы">
  8. <link rel="prev" href="tips.passing.vars.html" title="Присвоение переменной заголовка (title) шаблону-шапке">
  9. <link rel="next" href="tips.wap.html" title="WAP/WML">
  10. </head>
  11. <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
  12. <div class="navheader">
  13. <table width="100%" summary="Navigation header">
  14. <tr><th colspan="3" align="center">Даты</th></tr>
  15. <tr>
  16. <td width="20%" align="left">
  17. <a accesskey="p" href="tips.passing.vars.html">Prev</a> </td>
  18. <th width="60%" align="center">Chapter 18. Советы</th>
  19. <td width="20%" align="right"> <a accesskey="n" href="tips.wap.html">Next</a>
  20. </td>
  21. </tr>
  22. </table>
  23. <hr>
  24. </div>
  25. <div class="sect1" title="Даты">
  26. <div class="titlepage"><div><div><h2 class="title" style="clear: both">
  27. <a name="tips.dates"></a>Даты</h2></div></div></div>
  28. <p>
  29. Обычно даты в Smarty всегда передаются как
  30. <a class="ulink" href="http://php.net/time" target="_top">временные метки</a> (англ. timestamp),
  31. что позволяет проектировщикам шаблонов использовать <a class="link" href="language.modifier.date.format.html" title="date_format"><code class="varname">date_format</code></a>
  32. для полного контроля над форматированием даты и также делает легким
  33. сравнение дат там, где это необходимо.
  34. </p>
  35. <div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;">
  36. <h3 class="title">Note</h3>
  37. <p>
  38. Начиная с версии Smarty 1.4.0, вы можете передавать даты в Smarty в виде
  39. меток времени Unix (unix timestamps), mysql, или в любом другом виде,
  40. который понимает функция
  41. <a class="ulink" href="http://php.net/strtotime" target="_top">strtotime()</a>.
  42. </p>
  43. </div>
  44. <div class="example">
  45. <a name="id2746704"></a><p class="title"><b>Example 18.4. Использование date_format</b></p>
  46. <div class="example-contents">
  47. <pre class="programlisting">
  48.  
  49. {$startDate|date_format}
  50.  
  51. </pre>
  52. <p>
  53. Результат работы:
  54. </p>
  55. <pre class="screen">
  56.  
  57. Jan 4, 2009
  58.  
  59. </pre>
  60. <pre class="programlisting">
  61.  
  62. {$startDate|date_format:"%Y/%m/%d"}
  63.  
  64. </pre>
  65. <p>
  66. Результат работы:
  67. </p>
  68. <pre class="screen">
  69.  
  70. 2009/01/04
  71.  
  72. </pre>
  73. <p>
  74. Даты можно ставнивать в шаблонах путем сравнения
  75. меток времени следующим образом:
  76. </p>
  77. <pre class="programlisting">
  78.  
  79. {if $date1 &lt; $date2}
  80. ... делаем что-то полезное ...
  81. {/if}
  82.  
  83. </pre>
  84. </div>
  85. </div>
  86. <br class="example-break"><p>
  87. Когда <a class="link" href="language.function.html.select.date.html" title="{html_select_date}">
  88. <code class="varname">{html_select_date}</code></a>
  89. используется в шаблоне, программист наверняка захочет преобразовать
  90. данные из формы назад в формат временной метки. Вот функция, которая
  91. поможет вам сделать это.
  92. </p>
  93. <div class="example">
  94. <a name="id2746789"></a><p class="title"><b>Example 18.5. Преобразование элементов формы ввода даты назад к временной метке</b></p>
  95. <div class="example-contents"><pre class="programlisting">
  96.  
  97. &lt;?php
  98.  
  99. // Предполагается, что ваши элементы формы названы
  100. // startDate_Day, startDate_Month, startDate_Year
  101.  
  102. $startDate = makeTimeStamp($startDate_Year, $startDate_Month, $startDate_Day);
  103.  
  104. function makeTimeStamp($year='', $month='', $day='')
  105. {
  106. if(empty($year)) {
  107. $year = strftime('%Y');
  108. }
  109. if(empty($month)) {
  110. $month = strftime('%m');
  111. }
  112. if(empty($day)) {
  113. $day = strftime('%d');
  114. }
  115.  
  116. return mktime(0, 0, 0, $month, $day, $year);
  117. }
  118. ?&gt;
  119.  
  120. </pre></div>
  121. </div>
  122. <br class="example-break"><p>
  123. См. также
  124. <a class="link" href="language.function.html.select.date.html" title="{html_select_date}">
  125. <code class="varname">{html_select_date}</code></a>,
  126. <a class="link" href="language.function.html.select.time.html" title="{html_select_time}">
  127. <code class="varname">{html_select_time}</code></a>,
  128. <a class="link" href="language.modifier.date.format.html" title="date_format">
  129. <code class="varname">date_format</code></a> и
  130. <a class="link" href="language.variables.smarty.html#language.variables.smarty.now" title="{$smarty.now}">
  131. <em class="parameter"><code>$smarty.now</code></em></a>
  132. </p>
  133. </div>
  134. <div class="navfooter">
  135. <hr>
  136. <table width="100%" summary="Navigation footer">
  137. <tr>
  138. <td width="40%" align="left">
  139. <a accesskey="p" href="tips.passing.vars.html">Prev</a> </td>
  140. <td width="20%" align="center"><a accesskey="u" href="tips.html">Up</a></td>
  141. <td width="40%" align="right"> <a accesskey="n" href="tips.wap.html">Next</a>
  142. </td>
  143. </tr>
  144. <tr>
  145. <td width="40%" align="left" valign="top">Присвоение переменной заголовка (title) шаблону-шапке </td>
  146. <td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td>
  147. <td width="40%" align="right" valign="top"> WAP/WML</td>
  148. </tr>
  149. </table>
  150. </div>
  151. </body>
  152. </html>