Дата проверки в Laravel 5.8 - PullRequest
       0

Дата проверки в Laravel 5.8

0 голосов
/ 14 октября 2019

Я новичок в Laravel. Я использую в своем проекте Laravel 5.8.

У меня есть этот код:

$dateFrom = '2019-10-14';
$dateTo = '2019-11-18';
  1. проверьте, если $ dateFrom и $ dateTo имеют правильный формат даты
  2. мыпроверим, меньше ли $ dateFrom, чем $ dateTo 3. мы проверяем, меньше или равно число дней между $ dateFrom и $ dateTo 60

Как это сделать?

Ответы [ 4 ]

0 голосов
/ 14 октября 2019

Попробуйте

$dateFromInput = '2019-10-14';
$dateToInput = '2019-11-18';
$dateFrom = date('Y-m-d', strtotime($dateFromInput));
$dateTo = date('Y-m-d', strtotime($dateToInput)); 
$compareval = false;
if($dateFrom < $dateTo){
$compareval = true;
}
$daydiff = false;
$x  = ceil(abs(strtotime($dateTo) - strtotime($dateFrom)) / 86400);
if( $x <= 60)
{
$daydiff = true;
}
echo $compareval;
echo $daydiff;

Вывод будет

11 (true true)
0 голосов
/ 14 октября 2019

Если вы хотите проверить формат:

$dateFromInput = '2019-10-14';
$dateToInput = '2019-11-18';
$dateFormat = 'Y-m-d';

$dateFrom = \DateTime::createFromFormat($dateFormat, $dateFrom);
$dateTo = \DateTime::createFromFormat($dateFormat, $dateTo); // Returns false if string does not have expected format

if (!$dateFrom instanceof \DateTime or $dateTo instanceof \DateTime) {
    throw new \Exception('Illegal date format'); // Or `return null`
}

Затем продолжите с ответом Удхайана Наира.

0 голосов
/ 14 октября 2019
    $dateFrom = Carbon::create('2019-12-14');
    $dateTo = Carbon::create('2019-11-18');

    // diffInDays will give us $dateTo - $dateFrom.
    // False is to get a negative value if $dateTo is bigger than $dateFrom
    $diff = $dateFrom->diffInDays($dateTo, false);
    if ($diff >= 0) {
        // We have postitive difference so $dateFrom is older than $dateTo
        If ($diff <= 60) {
            // Hooray - we have positive difference that is less thn 60 days
        }
    } else {
        // $dateTo is before $dateFrom (negative difference)
    }

Углерод Хороший способ работы с DateTime в удобочитаемой форме.

0 голосов
/ 14 октября 2019

что вы можете сделать, это;

$dateFrom = '2019-10-14';
$dateTo = '2019-11-18';

$formattedDateFrom = strtotime($dateFrom);
$formattedDateTo = strtotime($dateTo);

$compareval = false;

if($formattedDateFrom < $formattedDateTo){
    $compareval = true;
}

** to check for 60 days ** 
$val = $formattedDateTo - $formattedDateFrom;

$epchtimeframe = 86400 * 60; //this is to check 60 days in epoch val

$compareval2 = false;

if($epchtimeframe>= $val){
   $compareval2 = true;
}

Что-то вроде этого в принципе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...