Неправильно сформированное числовое значение, обнаруженное в ... в строке 171 - PullRequest
0 голосов
/ 30 августа 2018

Мы продолжаем получать вышеуказанную ошибку. Попытался добавить $ старт выше 171, но тот же результат. Вот код:

/**
 * Get all of the months since a certain date
 */
public static function getMonthsSinceDate($start) {

    $key_month = date('MY', $start);   (note this is Line 171)
    $key = 'months_since_' . $key_month;
    $months = CodonCache::read($key);

    if ($months === false) {
        if (!is_numeric($start)) {
            $start = strtotime($start);
        }

        $end = date('Ym');

        do {
            # Get the months
            $month = date('M Y', $start);
            $months[$month] = $start; # Set the timestamp
            $start = strtotime('+1 month +1 day', strtotime($month));

            # Convert to YYYYMM to compare
            $check = intval(date('Ym', $start));

        } while ($check <= $end);

        CodonCache::write($key, $months, 'long');
    }

    return $months;
}

/**

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

PHP date() предполагает получение даты в целочисленной временной метке UNIX. Если вы попытаетесь передать читаемую человеком дату в виде строки, она выдаст ошибку.

Если это так, преобразуйте его в метку времени, используя strtotime(), например:

$start = strtotime( $start );

0 голосов
/ 30 августа 2018

Где бы вы ни вызывали функцию getMonthsSinceDate (); Вы случайно передаете это не числовое Это может быть тонко, как число, заключенное в кавычки, которое станет строкой, т.е.

getMonthsSinceDate('111111')
...