[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: PHP - Определение даты
JaksonSWAG
Здравствуйте! Есть PHP скрипт:


$day = date("j");
$month = date("n");
$time = date("g");
$datex = 3;
$datey = 4;
$datez = 17;
if ($day != $datex && $month != $datey && $time != $datez) {
echo ('<span class="stat">Статус: в ожидании</span>');
}
elseif ($day == $datex && $month == $datey) {
echo ('<span class="stat">Статус: сегодня</span>');
}
elseif ($day >> $datex || $month >> $datey || $time >> $datez) {
echo ('<span class="stat">Статус: завершено</span>');
}


Помогите мне, новичку в php, сделать так, чтобы
1) если не наступила дата, то пишет "в ожидании"
2) если все параметры совпадают, то пишет "идет сейчас"
3) если совпадают только два первых параметра, то пишет "сегодня"
4) и если дата прошла, то выводит "завершено"

Необходимо для сайта школы) Спасибо
Игорь_Vasinsky
$date = date('Y-m-d');
$dateString = '2015-04-01';

var_dump($date == $dateString);


Цитата
bool(true)


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
JaksonSWAG
Поясните, как новичку)
rooor
А почему дата именно в таком формате? Откуда она?
AllesKlar
Игорь_Vasinsky
Не ковайно. Один операнд типа дата, второй типа строка ( кто зануда? ээээ )
define('SECONDS_IN_DAY', 60*60*24);     // количество секунд в сутках
$date_format = 'Y-m-d H'; // требуемый формат даты и времени
$date_str = '2015-04-01 23'; // строка с датой и временем

$today = new DateTime(); // текущая дата
$today->setTime($today->format('H'),0); // сбрасываем минуты текущей даты в 0

$date2 = DateTime::createFromFormat($date_format, $date_str); // получаем дату из строки

$diff = $date2->getTimestamp() - $today->getTimestamp(); // вычисляем разницу дат в секундах
if($diff == 0) // математика 1ый класс, сравнение на больше / меньше / равно
{
echo "идет сейчас";
}
else if( $diff < 0)
{
echo "завершено";
}
else if( $diff < SECONDS_IN_DAY)
{
echo "сегодня";
}
else
{
echo "в ожидании";
}


Можно еще с DateTimeInterval, но там куча свойств к сравнению.. так нагляднее.

//------------ update
Ах ты ж жованный php date() возвращает строку, оказывается. ну, всем языкам язык :D

_____________
[продано копирайтерам]
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.