#php #date
#php #Дата
Вопрос:
У меня есть этот код:
$x = date("Y-m-d", strtotime($post['commissionEligibilityDate'] . " " . $post['billingPeriodExpiration'] . " months"))
$post['commissionEligibilityDate'] = 2011-11-08 <br/>
$post['billingPeriodExpiration'] = 2 <br/>
итак, $x
возвращает 2012-01-08
.
У меня есть другая переменная $singleDate
, и она равна 1
. Что я пытаюсь сделать, замените 08
на 01
. Как я могу это сделать?
Ответ №1:
Вам не обязательно использовать Y-m-d, вы можете использовать Y-m-01 или вашу переменную:
$x = date("Y-m-".$singleDate, strtotime($post['commissionEligibilityDate'] . " " . $post['billingPeriodExpiration'] . " months"))
Ответ №2:
Вы могли бы использовать класс DateTime:
$d = new DateTime($x);
$year = $d->format('Y');
$month = $d->format('m');
$d->setDate($year, $month, '01');
echo $d->format('Y-m-d');
Комментарии:
1. использование вышесказанного было супер удивительным, поскольку добавление дней / месяцев сам PHP обрабатывает правильную дату и дает точный результат, мой сценарий заключался в добавлении даты, которая может изменить месяц и даже год. 1
Ответ №3:
str_replace('08','01',$post['commissionEligibilityDate']);
Ответ №4:
$explode = explode("-",$post['commissionEligibilityDate']);
$explode[2] = $singleDate;
$post['commissionEligibilityDate'] = implode("-",$explode);
$post['commissionEligibilityDate'] will now echo 2011-11-1
Ответ №5:
С PHP возможно практически все. Мое предложение, поскольку вы хотите получить только одно число с даты, которую вы планируете проверитьhttp://php.net/manual/en/function.date.php чтобы увидеть различные способы обработки выходных данных date(). Поскольку вы могли бы легко вывести день, добавьте к нему $ z = date (‘d’, time()) 1; например.
Я не уверен, что конкретно вы делаете со своими датами, но для меня это звучит так, как будто у вас может быть неправильное представление о том, что это такое, и как с ними работать. По сути, краткая идея заключается в том, что дата, определенная в переменной, является строкой. Вы можете создать их в любом случае, даже без использования date (), а затем сохранить их, если они будут в правильном формате, когда вы перейдете к их сохранению, т.Е. гггг-мм-дд, все должно быть в порядке.