Строка PHP mktime не работает

Я пытаюсь добавить $input к моей строке $output mktime, но она просто возвращает сегодняшнюю дату, а не дату +2 дня (например, на 2 дня вперед), как хотелось бы. Может ли кто-нибудь помочь мне с этим, пожалуйста?

 $input = '+2';
 $output = date('j',mktime(0,0,0,date('j'), date('d'),  $input  ,date('Y')));

я тоже пробовал

$input = +2;
$output = date('j',mktime(0,0,0,date('j'), date('d'),  $input  ,date('Y')));

но и это не сработало.

Любая помощь будет высоко оценена, спасибо заранее.


person user3236271    schedule 25.01.2014    source источник


Ответы (2)


Ты можешь сделать:

date('j', mktime(0, 0, 0, date('m'), date('d') + 2, date('Y')));

Но, вероятно, проще было бы (и более читабельно):

$date = strtotime('+2 days');
$output = date('j', $date);
person brgs    schedule 25.01.2014
comment
Да, спасибо, что указали на это, я действительно вернулся с идеей отредактировать это. :D - person brgs; 26.01.2014

Кома перед $input вас бесит. Вы должны заменить его знаком + и указать только количество дней в вашем входе $. Как это:

$input = 2;
$output = date('j',mktime(0,0,0,date('j'), date('d') + $input,date('Y')));

Но есть лучшие способы сделать это (см. другие ответы).

person StephaneMombuleau    schedule 25.01.2014
comment
Спасибо, ваш ответ работает! Однако, поразмыслив, я согласен, что другой ответ - это более простой способ сделать это. - person user3236271; 26.01.2014