Как правильно указать время в PHP?

Здравствуйте! В-общем, есть такая проблема. Есть самописная CRM, в которой забиты сотрудники. У сотрудников есть отпуск. Я вывожу его на странице сотрудника без проблем. Но, встала такая задача - проверять, прошел уже отпуск или еще нет.
Так как в PHP не особо силен, то составил такую конструкцию:
<?php
   $otp1end = $item['otp1'];
   $otp2end = $item['otp2'];
   $now_date = date('d.m.Y');
                        	
   $otp1end_unix = strtotime($otp1end);
   $otp2end_unix = strtotime($otp2end);
   $now_date_unix = strtotime($now_date);
      if($now_date_unix > $otp1end_unix) {
            echo "Отпуск еще не наступил";
           } else {
            echo "Отпуск уже прошел";
             }
?>


Помогите составить правильную конструкцию. Заранее спасибо!
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
rozhnev
@rozhnev Куратор тега PHP
Fullstack programmer, DBA, медленно, дорого
Поробуйте так:
<?php
$otp1start = "2021-11-10";
$otp1end = "2021-11-20";
$now_date = date("Y-m-d");

if ($now_date > $otp1end) {
    echo "Отпуск уже прошел";
} elseif ($now_date >= $otp1start) {
    echo "Сотрудник в отпуске";
} else {
    echo "Отпуск еще не наступил";
}
?>

PHP online test
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
В каком формате хранятся даты отпуска? Если в дата - то код почти рабочий, разве что ответы переставить надо, и у ребят которые сейчас в отпуске "Отпуск еще не наступил".

Так как с датами "в голове" иногда сложно сопоставлять, для себя делайте умственную проверку:
if($now_date_unix (пусть будет 27 число) > $otp1end_unix (пусть будет 17 число)) {
   // тут надо подумать и написать правильный вариант )
}...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы