2016-09-07 7 views
1

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

Пример:

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

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

Пример:

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

2016-12-01 ----- 2017-01-01 
+0

Простой формат даты, таким образом, датируется («Y-m-d»). Вы можете прочитать больше здесь: http://www.w3schools.com/php/php_date.asp –

+0

вы что-нибудь пробовали? – Ghost

+0

Я думаю, вы можете найти ответ на свою первую часть своего Q здесь http://www.w3schools.com/php/func_date_date_create.asp – Laith

ответ

2

Вы можете использовать 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

0

Вы можете использовать функцию 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

$ month ++ будет увеличивать только месяц. Что, если месяц в декабре и год также увеличится, если это декабрь. Пример: 2016-12-01, и ваш выход - 2016-13-01, но мне нужно 2017-01-01 – Deepak

0

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

date('Y'); 

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

Это даст вам +1 месяц с даты вашего бронирования.

date('Y-m-d', strtotime("+1 months", strtotime('2016-12-01')));