JaksonSWAG
1.04.2015 - 21:06
Здравствуйте! Есть 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
1.04.2015 - 21:18
$date = date('Y-m-d');
$dateString = '2015-04-01';
var_dump($date == $dateString);
_____________
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
А почему дата именно в таком формате? Откуда она?
AllesKlar
1.04.2015 - 22:58
Игорь_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);
$date2 = DateTime::createFromFormat($date_format, $date_str);
$diff = $date2->getTimestamp() - $today->getTimestamp();
if($diff == 0)
{
echo "идет сейчас";
}
else if( $diff < 0)
{
echo "завершено";
}
else if( $diff < SECONDS_IN_DAY)
{
echo "сегодня";
}
else
{
echo "в ожидании";
}
Можно еще с DateTimeInterval, но там куча свойств к сравнению.. так нагляднее.
//------------ update
Ах ты ж жованный php date() возвращает строку, оказывается. ну, всем языкам язык :D
_____________
[продано копирайтерам]