Урок 4-5

Урок 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>.
Циклы станут более применимыми, если вы научитесь ещё кое чему. Если вы в принципе поняли, что такое циклы, можете перейти к следующему уроку, где мы разберёмся с условием.
Друзья сайта

Комментариев нет:

Отправить комментарий