View file manual-ru/tips.dates.html

File size: 5.62Kb
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Даты</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
<link rel="home" href="index.html" title="Руководство по Smarty">
<link rel="up" href="tips.html" title="Chapter 18. Советы">
<link rel="prev" href="tips.passing.vars.html" title="Присвоение переменной заголовка (title) шаблону-шапке">
<link rel="next" href="tips.wap.html" title="WAP/WML">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr><th colspan="3" align="center">Даты</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="tips.passing.vars.html">Prev</a> </td>
<th width="60%" align="center">Chapter 18. Советы</th>
<td width="20%" align="right"> <a accesskey="n" href="tips.wap.html">Next</a>
</td>
</tr>
</table>
<hr>
</div>
<div class="sect1" title="Даты">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="tips.dates"></a>Даты</h2></div></div></div>
<p>
   Обычно даты в Smarty всегда передаются как
   <a class="ulink" href="http://php.net/time" target="_top">временные метки</a> (англ. timestamp),
   что позволяет проектировщикам шаблонов использовать <a class="link" href="language.modifier.date.format.html" title="date_format"><code class="varname">date_format</code></a>
   для полного контроля над форматированием даты и также делает легким
   сравнение дат там, где это необходимо.
  </p>
<div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Note</h3>
<p>
    Начиная с версии Smarty 1.4.0, вы можете передавать даты в Smarty в виде
    меток времени Unix (unix timestamps), mysql, или в любом другом виде,
    который понимает функция
    <a class="ulink" href="http://php.net/strtotime" target="_top">strtotime()</a>.
   </p>
</div>
<div class="example">
<a name="id2746704"></a><p class="title"><b>Example 18.4. Использование date_format</b></p>
<div class="example-contents">
<pre class="programlisting">

{$startDate|date_format}

   </pre>
<p>
    Результат работы:
   </p>
<pre class="screen">

Jan 4, 2009

   </pre>
<pre class="programlisting">

{$startDate|date_format:"%Y/%m/%d"}

   </pre>
<p>
    Результат работы:
   </p>
<pre class="screen">

2009/01/04

   </pre>
<p>
    Даты можно ставнивать в шаблонах путем сравнения
    меток времени следующим образом:
   </p>
<pre class="programlisting">

{if $date1 &lt; $date2}
    ... делаем что-то полезное ...
{/if}

   </pre>
</div>
</div>
<br class="example-break"><p>
   Когда <a class="link" href="language.function.html.select.date.html" title="{html_select_date}">
   <code class="varname">{html_select_date}</code></a>
   используется в шаблоне, программист наверняка захочет преобразовать
   данные из формы назад в формат временной метки. Вот функция, которая
   поможет вам сделать это.
  </p>
<div class="example">
<a name="id2746789"></a><p class="title"><b>Example 18.5. Преобразование элементов формы ввода даты назад к временной метке</b></p>
<div class="example-contents"><pre class="programlisting">

&lt;?php

// Предполагается, что ваши элементы формы названы
// startDate_Day, startDate_Month, startDate_Year

$startDate = makeTimeStamp($startDate_Year, $startDate_Month, $startDate_Day);

function makeTimeStamp($year='', $month='', $day='')
{
   if(empty($year)) {
       $year = strftime('%Y');
   }
   if(empty($month)) {
       $month = strftime('%m');
   }
   if(empty($day)) {
       $day = strftime('%d');
   }

   return mktime(0, 0, 0, $month, $day, $year);
}
?&gt;

   </pre></div>
</div>
<br class="example-break"><p>
   См. также
   <a class="link" href="language.function.html.select.date.html" title="{html_select_date}">
   <code class="varname">{html_select_date}</code></a>,
   <a class="link" href="language.function.html.select.time.html" title="{html_select_time}">
   <code class="varname">{html_select_time}</code></a>,
   <a class="link" href="language.modifier.date.format.html" title="date_format">
   <code class="varname">date_format</code></a> и
   <a class="link" href="language.variables.smarty.html#language.variables.smarty.now" title="{$smarty.now}">
   <em class="parameter"><code>$smarty.now</code></em></a>
  </p>
</div>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="tips.passing.vars.html">Prev</a> </td>
<td width="20%" align="center"><a accesskey="u" href="tips.html">Up</a></td>
<td width="40%" align="right"> <a accesskey="n" href="tips.wap.html">Next</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">Присвоение переменной заголовка (title) шаблону-шапке </td>
<td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td>
<td width="40%" align="right" valign="top"> WAP/WML</td>
</tr>
</table>
</div>
</body>
</html>