Php сравнить дату с текущей

Php сравнить дату с текущей

В PHP можно легко создать удобочитаемую дату или время, используя функцию Date() . Эта функция принимает два аргумента: допустимый формат даты и метку времени Unix ( если ее не указывать, функция возвратит текущую дату/время ).

Приведенный выше пример прекрасно подходит для отображения дат и времени. Но когда дело доходит до PHP сравнения дат, использовать удобные для чтения строки — не самый надежный способ. Намного эффективнее сравнить временные метки. Метка времени Unix содержит количество секунд между 1 января 1970 00:00:00 GMT и указанным временем. Это означает, что можно сравнивать даты вплоть до секунд.

Чтобы использовать функцию date() для возврата конкретной даты необходима метка времени, так что сначала потребуется создать ее. Это можно сделать с помощью функций mktime() или strotime() . Обе функции возвращают метку времени Unix , но при этом принимают различные аргументы.

Функция mktime() требует, чтобы дата и время были переданы ей в виде отдельных сегментов ( часы, минуты, секунды, месяц, день, год ):

В свою очередь функция strtotime() может преобразовать текстовое представление даты/времени в метку времени:

Если при PHP сравнении даты с текущей функция strtotime() получает дату/время, в которых день и месяц располагаются перед годом, эта запись будет интерпретироваться по-разному, в зависимости от используемого разделителя. При использовании косой черты в качестве разделителя функция возвратит метку времени в американском формате ( м/д/г ). При использовании в качестве разделителя тире или точки функция возвратит метку в европейском формате ( д-м-г ).

Как можно увидеть ниже, первая метка времени отличается от двух последних:

Функции mktime() и strtotime() возвращают одинаковый результат. Часто текстовое представление даты и времени (‘ 2016-01-01 ‘) хранится в базе данных и считывается из нее через HTML-форму . Например, при помощи библиотеки jQuery datepicker , которая идеально подходит для использования функции strtotime() .

Читайте также:  Game prelauncher аналоги для игр

Прежде чем осуществлять сравнение двух дат в PHP , важно убедиться, что временные метки созданы с помощью одного и того же формата. Можно воспользоваться функцией mktime() . Ее преимущество заключается в том, что она намного строже в отношении передаваемой ей даты или время.

Важным преимуществом использования функции strtotime() является гибкость и простота, с которой можно добавить время или вычесть из него:

Пример, показанный ниже, демонстрирует PHP сравнение даты и операции с использованием функции strtotime() . В нем создается массив дат в заданном диапазоне в соответствии с определенным временным интервалом. Функция print_r() выводит результирующий массив, который выглядит следующим образом:

При сравнении двух дат в PHP внутри цикла while время ( в данном случае семь дней ) добавляется к дате начала и производится проверка, чтобы убедиться больше ли полученная временная метка, чем временная метка даты начала.

Если это не так, новая дата добавляется в массив $DateRange , пока цикл не закончится:

Я использовал оператор switch , чтобы определить несколько различных вариантов временного интервала. Это было сделано для того, чтобы показать, как интуитивные « временные » строки использовались для управления временной меткой с помощью функции strtotime() . В документации по PHP приводятся дополнительные примеры.

Данная публикация представляет собой перевод статьи « Compare Date and Time With PHP strtotime() | Quick Reference Tutorial » , подготовленной дружной командой проекта Интернет-технологии.ру

Я испытываю трудности с получением простой проверки даты для правильной работы. Я искал все вопросы, и до сих пор ни одно из решений не помогло мне.

Я хочу сделать цикл с определенной даты, до сегодняшнего дня.

Вы также можете использовать strtotime() преобразовать строки даты в метках времени . Увидеть этот вопрос для преобразования нумерованных форматов даты в метки времени Unix.

Читайте также:  Бесплатные читалки на телефон

Использовать ->diff() метод класса DateTime, как это довольно чистый

->diff() Метод создает объект DateInterval, который выглядит следующим образом

Так что код может быть таким простым

использовать: date_format($startOfPlayoffs,"Y-m-d") чтобы получить «переменную», вы можете сравнить с …

При работе с датами и временем в php могут возникнуть сложности даже у опытных программистов. Для разработки сложных приложений или сайтов чаще всего требуется операции по сравнению времени, изменению его формата или сложению/вычитанию дат и часов.

Напомню, что проще всего получить текущую дату в php можно с помощью функции date(). Например, выведет время и текущую дату.

Преобразовать формат времени

Как известно, в базе данных дата обычно записывается в формате: yyyy-mm-dd. Но при выгрузке на сайте данный формат не очень удобен для восприятия. Предлагаю рассмотреть пример ниже, который преобразует дату в нужный формат (dd-mm-yyyy):

Изменение времени в php

Для этой задачи можно использовать date() и strtotime(). Последняя преобразует дату с 1970г (в виде цифр или английского текста) в метку времени Unix. Рассмотрим примеры:

Прибавит к текущей дате 1 день:
echo date(‘d.m.Y’, strtotime(date(‘d.m.Y’)."+1 day"));

Вычтет 2 часа, 15 минут, 10 сек:
$date=date("12:57:34");
$vr = ‘-2 hours -15 minutes -10 seconds’;
echo date(‘H:i:s’, strtotime($date . $vr));

Прибавит 1 недели и 2 дня и вычтет 15 минут:
$date=date("01.08.2014 12:57:34");
$vr = ‘+1 week +2 days -15 minutes’;
echo date(‘d.m.Y H:i:s’, strtotime($date . $vr));

Последний день месяца из даты:
$timelastday = date("t", strtotime(date("d.m.Y")));

Текущий день из даты:
$timefirstday = date("d", strtotime(date("d.m.Y")));

Увеличиваем дату на 1 месяц и выводим ее в нужном формате:
$timenext = strtotime(date("d.m.Y")." +1 month");
echo $timenextmec = date("d.m.Y", $timenext);

Сравнение времени в php

Выполняется на уже знакомой нам функции strtotime(). Рассчитаем разницу в днях между двумя датами:
$date1=’16.11.2012′; $date2=’11.10.2012′;
echo round((strtotime($date1)-strtotime($date2))/(60*60*24));

Читайте также:  Apmsgfwd exe что это такое

В php есть множество возможностей по работе с датами и временем. Экспериментируйте с кодом и все получится.

Ссылка на основную публикацию
Adblock detector