У меня есть эта функция, которая создает наборы для истечения чего-то. Функция принимает пару аргументов, которые имеют значения по умолчанию. Я делаю это так:Как установить DateInterval в php?
public static function blockAccount(
$id,
$years = 0,
$months = 0,
$days = 0,
$hours = 0,
$minutes = 0,
$seconds = 0
) {
// Determine expiry date for the block
$date = Text::getDateTime();
$date->add(
new \DateInterval(
'P' . $years . 'Y'
. $months . 'M'
. $days . 'D'
. $hours . 'H'
. $minutes . 'I'
. $seconds . 'S'
)
);
$blockedExpiryDate = $date->format(Filter::FORMAT_MICRO_TIMESTAMP);
$accountModel = AccountModel::selectById($id);
$accountModel->setBlockedExpiryDate($blockedExpiryDate);
$accountModel->save();
}
При выполнении этого с только год набора, я получаю сообщение об ошибке, говоря: DateInterval::__construct(): Unknown or bad format (P1Y0M0D0H0I0S)
.
Любые идеи, что я делаю неправильно здесь?
Спасибо за предложение, но теперь я просто получаю сообщение об ошибке «DateInterval :: __ construct(): Неизвестный или плохой формат (P1Y0M0DT0H0I0S)». Любые другие идеи? – kramer65
Минуты должны быть 'M' not' I' –
Согласно документам PHP, M означает Месяцы, и я обозначаю Минуты: http://www.php.net/manual/en/class.dateinterval.php – kramer65