PHP - Date & Time: A Beginner's Guide

Здравствуйте, будущие разработчики PHP! Сегодня мы окунемся в fascинирующий мир дат и времени в PHP. Как ваш доброжелательный соседский учитель компьютера, я здесь, чтобы направить вас через это путешествие с четкими объяснениями, множеством примеров и, может быть, даже парой шуток по пути. Так что достаньте свои виртуальные календари и давайте начнем!

PHP - Date & Time

Понимание важности дат и времени в программировании

Прежде чем мы углубимся в Details, позвольте мне поделиться быстрой историей. Когда я впервые начал преподавать PHP, у меня был студент, который создал красивое приложение для блога. Все работало идеально, кроме одной маленькой детали - все посты отображались с одним и тем же timestamp! Оказывается, работа с датами и временем является важной во многих приложениях, от систем планирования до платформ социальных сетей. Вот почему так важно освоить функции дат и времени в PHP.

Получение timestamp с помощью time()

Давайте начнем с азов. В PHP мы часто работаем с czym-то называемым "timestamp". Представьте его как большое число, представляющее определенный момент времени. Функция time() - наш goto инструмент для получения текущего timestamp.

Пример 1: Использование time()

<?php
$current_timestamp = time();
echo "Текущий timestamp: " . $current_timestamp;
?>

Если вы запустите этот код, вы увидите что-то вроде:

Текущий timestamp: 1623456789

Теперь я знаю, что вы думаете: "Это просто большое число! Как это полезно?" Ну, мой好奇ый друг, это число представляет количество секунд, прошедших с 1 января 1970 года (также известного как "Unix Epoch"). Это может не выглядеть красиво, но это incredibly полезно для расчетов и сравнений.

Преобразование timestamp с помощью getdate()

Хорошо, у нас есть этот timestamp, но как мы превратим его в что-то, что могут читать люди? В enters getdate(), наш доброжелательный соседний преобразователь времени!

Пример 2: Использование getdate()

<?php
$current_timestamp = time();
$date_array = getdate($current_timestamp);
print_r($date_array);
?>

Это выведет что-то вроде:

Array
(
[seconds] => 30
[minutes] => 46
[hours] => 14
[mday] => 12
[wday] => 6
[mon] => 6
[year] => 2023
[yday] => 162
[weekday] => Saturday
[month] => June
[0] => 1623456789
)

Ух, это много информации! getdate() принимает наш timestamp и разбивает его на массив с всевозможной полезной информацией. Это как открыть коробку с ассортиrovanыми конфетами - есть что-то для каждого!

Использование getdate() в более читаемом виде

Давайте сделаем эту информацию немного более удобоваримой:

<?php
$current_timestamp = time();
$date_array = getdate($current_timestamp);
echo "Сегодня " . $date_array['weekday'] . ", " . $date_array['month'] . " " . $date_array['mday'] . ", " . $date_array['year'];
?>

Это выведет:

Сегодня Saturday, June 12, 2023

Much better, right? Now we're speaking human!

Преобразование timestamp с помощью date()

Хотя getdate() и хорош, иногда мы хотим больше контроля над тем, как наши даты и время форматируются. Вот где на помощь приходит функция date(). Это как швейцарский армейский нож для форматирования времени!

Пример 3: Основное использование date()

<?php
$current_timestamp = time();
echo date("Y-m-d H:i:s", $current_timestamp);
?>

Это выведет что-то вроде:

2023-06-12 14:46:30

Magia здесь заключается в строке формата "Y-m-d H:i:s". Каждая буква представляет собой другую часть даты или времени. Это как тайный код, но не волнуйтесь, я открою вам тайну!

Общие символы формата date()

Вот удобная таблица некоторых общих символов формата:

Символ Описание Пример
Y Четырехзначный год 2023
m Месяц (01-12) 06
d День месяца (01-31) 12
H Формат часа 24 (00-23) 14
i Минуты (00-59) 46
s Секунды (00-59) 30
l Полное имя дня Saturday
F Полное имя месяца June

Пример 4: Творческое использование date()

Давайте немного поиграем с форматированием:

<?php
$current_timestamp = time();
echo "It's " . date("l, F jS, Y \a\\t g:i A", $current_timestamp);
?>

Это может вывести:

It's Saturday, June 12th, 2023 at 2:46 PM

Look at that! We've created a friendly, readable date format. The \a\\t in the format string is an escaped 'at' – it's like telling PHP, "No, I actually want to print the word 'at' here, not use it as a format character."

Заключение

И вот мы arrived here, folks! Мы отправились в путешествие по земле дат и времени в PHP, от скромного timestamp до красиво отформатированных строк дат. Помните, работа с датами и временем - это все о практике. Не бойтесь экспериментировать с разными форматами и функциями.

Before I let you go, here's a little PHP date humor for you: Why did the PHP developer break up with their date? Because they couldn't find the right format! ?

Keep coding, keep learning, and most importantly, have fun with it! Until next time, this is your friendly neighborhood computer teacher signing off.

Credits: Image by storyset