Урок 4: Работа с датой и временем
В этом уроке мы попытаемся рассмотреть различные опции работы с датой и временем в PHP. На предыдущем занятии мы видели очень простые примеры того, что собой представляет РНР. В этом уроке мы более внимательно рассмотрим функцию date.
Функции даты и времени
В PHP имеется ряд функций для работы с датами и временем. В этом уроке разберём наиболее важную из этих функций: date.
Принимая различные параметры, функция date может возвращать дату/время в различных форматах. Вот наиболее часто используемые параметры:
- date("y")
- Возвращает текущий год даты - на сегодня возвращает: 13
- date("m")
- Возвращает текущий месяц даты - на сегодня возвращает: 08
- date("F")
- Возвращает текущий месяц даты - на сегодня возвращает: August
- date("d")
- Возвращает текущее число месяца даты - на сегодня возвращает: 21
- date("l")
- Возвращает название для недели даты - на сегодня возвращает: Wednesday
- date("w")
- Возвращает текущий день недели даты - на сегодня возвращает: 3
- date("H")
- Возвращает текущий час - в данное время возвращает: 23
- date("i")
- Возвращает текущую минуту - в данное время возвращает: 51
- date("s")
- Возвращает текущую секунду - в данное время возвращает: 53
Следующий пример иллюстрирует использование функции date:
<html> <head> <title>Время и дата</title> </head> <body> <?php echo "<p>Сегодня " . date("l") . "</p>"; ?> </body> </html>
Текущее время: 1377121913
Теперь держитесь крепче... немного притормозим! Функция time() возвращает текущее время в виде количества секунд, прошедших после 1 января 1970 года, 12:00 PM, GMT.
<html> <head> <title>Время и дата</title> </head> <body> <?php echo "<p>Сейчас ровно " . time() . " секунд после January 1, 1970, 12:00 PM, GMT </ p> "; ?> </body> </html>
Отображение в виде количества секунд после January 1, 1970, 12:00 PM GMT называется "timestamp/штамп времени" (UNIX timestamp), который весьма употребителен при работе с датой/временем будущего или прошлого.
По умолчанию функция date использует текущий timestamp (т. е. текущее значение time()). но с помощью дополнительного параметра вы можете специфицировать другой штамп времени и таким образом работать с прошлым или будущим. В следующем примере мы установим timestamp на 0 секунд после January 1, 1970 12:00 PM, GMT. Тогда можно узнать, каким днём недели было 1 января 1970 года.
<html> <head> <title>Время и дата</title> </head> <body> <?php echo "<p>1 января 1970 года - " . date("l",0) . "</p>"; ?> </body> </html>
Если вы не гений-математик, вам будет нелегко быстро перевести количество секунд после January 1, 1970 в в конкретное время прошлого или будущего. Но здесь вам поможет ещё одна функция: mktime, выполняющая вычисления за вас.
Синтаксис функции mktime таков (hour, minute, second, month, day, year). Следующий пример - конвертация первой фазы луны (July 21, 1969, 02:56):
<html> <head> <title>время и дата</title> </head> <body> <?php echo mktime (2,56,0,7,21,1969); ?> </body> </html>
Заметьте, что возвращается отрицательное число, поскольку это дата ранее January 1, 1970.
Теперь можно объединить это с функцией date и определить, какой тогда был день недели.
<html> <head> <title>Время и дата</title> </head> <body> <?php echo date("l", mktime(2,56,0,7,21,1969)); ?> </body> </html>
Для чего это можно использовать?
Всё это пока что может показаться несколько отвлечённым. Кроме того, для чего ещё модно в этой жизни использовать функцию вроде time()? И что ещё важнее: когда наконец вы узнаете что-то реально необходимое для ваших вэб-страниц?
Ответ: всё, что вы здесь изучаете - строительные блоки, и единственное, что может ограничивать вас, это ваше собственное творческое воображение! Рискну утверждать, что вы уже знаете больше, чем предполагаете. Например, вы в курсе, что можете сделать сайт с различными фоновыми изображениями для каждого дня недели и что это будет работать в любом браузере?
Это действительно правда! Посмотрите на пример:
<html>
<head>
<title>Время и дата</title>
</head>
<body background="background_<?php echo date("w"); ?>.png">
</body>
</html>
Этот пример, с динамическим фоновым изображением, требует наличия семи изображений, именованных background_1.png, background_2.png, background_3.png, etc.
Если пользователь входит на ваш сайт во вторник, фоновым будет изображение background_2.png, на следующий день - background_3.png. Легко и просто!
На следующем уроке вы узнаете о о новых строительных блоках, которые можно использовать для создания циклов и повторов вашего кода.
PHP увлекателен, вы не находите?
Урок 5: Циклы
В PHP имеется возможность управлять выполнением скриптов с помощью различных управляющих структур. В этом уроке мы рассмотри циклы. Циклы могут использоваться для повторения частей скриптов указанное число раз или до выполнения определённого условия.
Циклы "while"
Синтаксис цикла while таков:
while (условие) { Оператор }
Этот синтаксис можно перевести непосредственно на нормальный язык: while/пока условие соблюдается, делать что-то.
Рассмотрим простой пример:
<html> <head> <title>Циклы</title> </head> <body> <?php $x = 1; while ($x <= 50) { echo "<p>Этот текст повторяется 50 раз</p>"; $x = $x + 1; } ?> </body> </html>
В этом примере используется переменная/variable "$x". Как вы могли заметить, имена переменных в РНР всегда начинаются с символа "$". Поначалу это легко забыть, но это абсолютно необходимо запомнить, иначе скрипт не будет работать.
Помимо прочего, пример почти всегда говорит сам за себя. Сначала переменная $x получает значение 1. Затем цикл запрашивает у сервера повторение текста, пока $x не станет меньше или равна 50. При каждом проходе цикла значение переменной $x уменьшается на 1.
Циклы "for"
Другой способ создания цикла - с использованием for:
for (Инициализация; Условие; Шаг) { Оператор }
Оператор повторяется, пока 'Инициализация' + 'Шаг' удовлетворяют 'Условию'. Если это непонятно, взгляните на пример:
<html> <head> <title>Циклы</title> </head> <body> <?php for ($x=0; $x<=50; $x=$x+5) { echo '<p>variable $x теперь = ' . $x . '</p>'; } ?> </body> </html>
В вышеприведённом примере $x увеличивается на 5 при каждом проходе цикла. Цикл продолжается, пока $x меньше или равна 50. Обратите также внимание, как значение $x используется в качестве части этого выражения.
Вот другой пример:
<html> <head> <title>Циклы</title> </head> <body> <?php for ($ x=1; $x<=6; $x=$x+1) { echo "<h" . $x . ">Уровень заголовка " . $x . "</h" . $x . ">"; } ?> </body> </html>
Всё ли понятно? Сначала мы устанавливаем $x равной 1. Затем при каждом проходе цикла мы поднимаем уровень заголовка на $x (h1, h2, h3, etc.), пока $x не будет равна 6.
Вложенные циклы
В принципе нет никаких ограничений на использование циклов. Например, вы можете размещать циклы внутри других циклов и создавать таким образом много повторений.
Но будьте осторожны! PHP работает медленнее со сложными и большими скриптами. Например, в следующем примере с тремя циклами мы можем записать более 16 миллионов цветов!
Чтобы не замедлять работу страницы, мы должны значительно урезать это число, сделав шаг равным 30 и ограничив количество цветов числом 512.
<html> <head> <title>Циклы</title> </head> <body> <?php for ($intRed=0; $intRed<=255; $intRed=$intRed+30) { for ($intGreen=0; $intGreen<=255; $intGreen=$intGreen+30) { for ($intBlue=0; $intBlue<=255; $intBlue=$intBlue+30) { $StrColor = "rgb(" . $IntRed . "," . $IntGreen . "," . $IntBlue . ")"; echo "<span style='color:" . $StrColor . "'>" . $ StrColor . "</span>"; } } } ?> </body> </html>
В этом примере каждый из трёх основных цветов может (red, green и blue) может иметь значение от 0 до 255. Любое сочетание этих трёх цветов создаёт цвет в форме rgb(255,255,255). Этот код цвета используется как color в тэге <span>.
Циклы станут более применимыми, если вы научитесь ещё кое чему. Если вы в принципе поняли, что такое циклы, можете перейти к следующему уроку, где мы разберёмся с условием.
Друзья сайта
Комментариев нет:
Отправить комментарий