У меня есть месяц с 1 по 12. Как я могу сформировать дату в формате Y-m-d с текущим годом?

Примере:

У меня месяц 6. Вывод должен быть 2016-06-01

А также как получить следующий месяц указанной даты?

Примере:

2016-07-01 ----- 2016-08-01

2016-12-01 ----- 2017-01-01
php
1
Deepak 7 Сен 2016 в 09:41

3 ответа

Лучший ответ

Вы можете использовать setDate для DateTime . Сначала создайте объект DateTime и setDate () с текущим годом, specified month (от 1 до 12) и 1 в качестве даты.

Как это,

<?php

$date=new DateTime();
$date->setDate($date->format('Y'), 6, 1);  // change 6 with the month digit you have.

echo $date->format("Y-m-d");

$date->modify("+1 month");
echo "\n";

echo $date->format("Y-m-d");

Вывод:

2016-06-01
2016-07-01

Чтобы добавить месяц в дату, вы можете использовать функцию modify () для добавления месяца в объекте DateTime.

Демо: https://eval.in/636688

2
Alok Patel 7 Сен 2016 в 06:46

Чтобы получить текущий год

date('Y');

Подробнее о форматировании здесь http://php.net/manual/en/function.date.php

Это даст вам +1 месяц с даты, которую вы укажете

date('Y-m-d', strtotime("+1 months", strtotime('2016-12-01')));
0
iliaz 7 Сен 2016 в 06:49

Вы можете использовать функцию mktime в сочетании с функцией date

$month=6;
echo date("Y-m-d", mktime(0, 0, 0, $month, date('d'), date('Y')));
/* 2016-06-07 */

$month++;
echo date("Y-m-d", mktime(0, 0, 0, $month, date('d'), date('Y')));
/* 2016-07-07 */
0
Professor Abronsius 7 Сен 2016 в 06:48