<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mihalytch personal blog &#187; DATE</title>
	<atom:link href="http://mihalytch.org.ua/tag/date/feed" rel="self" type="application/rss+xml" />
	<link>http://mihalytch.org.ua</link>
	<description>Все о высоких технологиях</description>
	<lastBuildDate>Thu, 20 May 2010 07:56:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Время и дата в php</title>
		<link>http://mihalytch.org.ua/programming/php/date-and-time-in-php.html</link>
		<comments>http://mihalytch.org.ua/programming/php/date-and-time-in-php.html#comments</comments>
		<pubDate>Fri, 29 Aug 2008 14:36:48 +0000</pubDate>
		<dc:creator>Mihalytch</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[DATE]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Mihalytch]]></category>

		<guid isPermaLink="false">http://mihalytch.org.ua/programming/php/date-and-time-in-php.html</guid>
		<description><![CDATA[Эта статья представляет собой собрание нескольких полезных советов по манипулированию датой и временем в PHP. Для начала разберемся с установкой временной зоны. Для этого всего лишь необходимо воспользоваться функцией bool date_default_timezone_set ( string $timezone_identifier); Список временных зон (параметров для вышеописанной функции) доступен на официальном сайте PHP. Итак, для того чтобы установить нужную нам временную зону, [...]]]></description>
			<content:encoded><![CDATA[<p>Эта статья представляет собой собрание нескольких полезных советов по манипулированию датой и временем в PHP.<span id="more-55"></span></p>
<p>Для начала разберемся с <strong>установкой временной зоны</strong>. Для этого всего лишь необходимо воспользоваться функцией</p>
<pre>bool <a target="_blank" href="/go.php?url=ua2.php.net/manual/en/function.date-default-timezone-set.php" title="date_default_timezone_set">date_default_timezone_set</a> ( string <tt>$timezone_identifier</tt>);</pre>
<p>Список временных зон (параметров для вышеописанной функции) доступен на <a target="_blank" href="http://www.php.net/manual/en/timezones.others.php" title="Список временных зон">официальном сайте PHP</a>. Итак, для того чтобы установить нужную нам временную зону, необходимо вызвать функцию date_default_timezone_set в начале исполняемого скрипта.</p>
<p>Для того чтобы определить текущую временную зону в PHP есть стандартный инструмент:</p>
<pre>string <a target="_blank" href="http://mihalytch.org.ua/go.php?url=ua2.php.net/manual/en/function.date-default-timezone-get.php" title="date_default_timezone_get">date_default_timezone_get</a>  ( void  );</pre>
<p>О <a target="_blank" href="http://mihalytch.org.ua/programming/php/comparison-of-dates.html" title="Сравнение дат в PHP">сравнении двух дат</a> я уже упоминал ранее. Далее рассмотрим<strong> вычитание и сложение даты и времени</strong> или <strong>как определить какая дата и время были N дней X часов назад!? </strong>:)</p>
<p>Года полтора назад встречал "интересное" решение. Некий разработчик загнал в массив соответствия "номер месяца"=&gt;"количество дней", затем парсил текущую дату и "вручную" отнимал или прибавлял количество дней, часов, минут, секунд.  Описывать подробно этот алгоритм не буду, так как не привык изобретать велосипед. Предлагаю "формулу" гораздо проще:</p>
<pre class="brush: php;">
# $sec - разница в секундах с текущим временем;
# $min - разница в минутах с текущим временем;
# $hour - разница в часах с текущим временем;
# $days - разница в днях с текущим временем;
$need_date = date (&quot;Y-m-d H:i:s&quot;, time()+( $sec + 60*($min + 60*($hour + 24*$day))));
</pre>
<p>Где "<em>Y-m-d H:i:s</em>" всего лишь шаблон времени, которое мы получим в текстовом формате.</p>
<p>Для тех, кто хочет узнать не будущее, а прошлое время - необходимо заменить вот этот плюс <em>... time()<font color="#ff0000">+</font>( $sec ...</em> на минус.</p>
<p>На этой оптимистической ноте заканчиваю описание. Остальные возможности PHP предлагаю рассмотреть самостоятельно на официальном сайте php.net в качестве домашнего задания.</p>
<img src="http://mihalytch.org.ua/?ak_action=api_record_view&id=55&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://mihalytch.org.ua/programming/php/date-and-time-in-php.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Сравнение дат</title>
		<link>http://mihalytch.org.ua/programming/php/comparison-of-dates.html</link>
		<comments>http://mihalytch.org.ua/programming/php/comparison-of-dates.html#comments</comments>
		<pubDate>Fri, 14 Mar 2008 10:24:41 +0000</pubDate>
		<dc:creator>Mihalytch</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[DATE]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://mihalytch.org.ua/programming/php/comparison-of-dates.html</guid>
		<description><![CDATA[Задача: сравнить две даты. Первая - текущая, вторая полученная из MySQL формата DATE средствами PHP. Всего доступно множество вариантов. Приведу самый простой из них: // $date_from_mysql - заведомо известная переменная //(взято из базы в формате ГГГГ-ММ-ДД) $current_date = date("Y-m-d"); if ($current_date &#62; $date_from_mysql) { echo 'current_date &#62; date_from_mysql'; } else { echo 'date_from_mysql &#62; current_date'; [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Задача</strong>: сравнить две даты. Первая - текущая, вторая полученная из MySQL формата DATE средствами PHP.</p>
<p>Всего доступно множество вариантов. Приведу самый простой из них:</p>
<p><span id="more-21"></span></p>
<pre>// $date_from_mysql - заведомо известная переменная
//(взято из базы в формате ГГГГ-ММ-ДД)
$current_date = date("Y-m-d");   

if ($current_date &gt; $date_from_mysql)  {
    echo 'current_date &gt; date_from_mysql';
}  else  {
    echo 'date_from_mysql &gt; current_date';
}</pre>
<p>Сравнить можно как дату, так и время (также DATETIME). Главное чтобы обе строки были в одинаковом формате.</p>
<p>Можно воспользоваться стандартными средствами MySQL:</p>
<pre>SELECT NOW() BETWEEN DATE_CURRENT AND DATE_END AS isBetween FROM MY_TABLE</pre>
<p>В данном случае доступны такие операторы для сравнения:</p>
<pre>=, &lt;, &gt;, &lt;=, &gt;=, BETWEEN;</pre>
<p>Также можно воспользоваться оператором сравнения массивов:</p>
<pre>// $date_from_mysql - заведомо известная переменная
// (взято из базы в формате ГГГГ-ММ-ДД)
$current_date = date("Y-m-d");
$date1 = explode("-", $date_from_mysql);
$date2 = explode("-", $current_date);   

if ($date1&gt;$date2)  {
   echo 'current_date &gt; date_from_mysql'
} else {
   echo 'date_from_mysql &gt; current_date';
}</pre>
<p>Следующий способ: удалить все символы кроме цифр из строковых переменных, в которых хранятся даты, и сравнить их как числа.</p>
<p><strong>Вывод</strong>: лично я нахожу первый описанный вариант сравнения дат наиболее простым и приемлемым.</p>
<img src="http://mihalytch.org.ua/?ak_action=api_record_view&id=21&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://mihalytch.org.ua/programming/php/comparison-of-dates.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
