PHP: Как узнать, если дата в текущем месяце? - PullRequest
0 голосов
/ 26 июня 2018

Мне нужно знать, если дата в текущем месяце.

Примеры:

  • Если дата 2018- 06 -30, а текущий месяц июнь (06), тогда true .

  • Если дата 2018- 07 -30, а текущий месяц июнь (06), тогда false .

У меня есть список дат, содержащий более 1000 дат, и я хочу показать или раскрасить только те даты, которые относятся к текущему месяцу.

Ответы [ 4 ]

0 голосов
/ 26 июня 2018

В качестве альтернативы вы можете использовать DateTime , а для формата используйте, например, n , чтобы получить числовое представление месяца без начальных нулей, и используйте Y, чтобы получить полное числовое представление года в 4 цифры.

$d = DateTime::createFromFormat('Y-m-d', '2018-06-30');
$today = new DateTime();
if($d->format('n') === $today->format('n') && $d->format('Y') === $today->format('Y')) {
    echo "Months match and year match";
}

Test

0 голосов
/ 26 июня 2018

Вы можете сделать все это в одной строке. В основном, конвертируйте указанную дату в время PHP и получите месяц.

date('m',strtotime('2018-06-30' )) == date('m');

Используя функцию date(), если вы передадите только формат, он примет текущую дату / время. Вы можете передать вторую необязательную переменную объекта time() для использования вместо текущей даты / времени.

0 голосов
/ 26 июня 2018

PHP не реализует тип даты. Если вы начинаете с даты / времени и знаете, что вы имеете дело только с одним часовым поясом, и вы хотите сказать, что хотите текущий месяц в текущем году

$testdate=strtotime('2018-06-31 12:00'); // this will be converted to 2018-07-01
if (date('Ym')==date('Ym', $testdate)) {
   // current month
} else {
   // not current month
}
0 голосов
/ 26 июня 2018

Надеюсь, это поможет -

$date = "2018-07-31";

if(date("m", strtotime($date)) == date("m"))
{
    //if they are the same it will come here
}
else
{
    // they aren't the same
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...