2013-09-19 5 views
0

У меня есть поле ввода даты. В одном поле я заполняю его getDate(), который возвращает текущую дату. Но в другой таблице я хочу заполнить точную последнюю дату этого месяца.Запишите дату окончания месяца в PHP

Например:

Текущая дата: 9/20/2012 в один текст. Теперь, следующая дата должна быть 9/30/2012

Аналогичным образом, Текущая дата: 01/14/2012 в одном тексте. Теперь следующая дата должна быть 01/31/2012

ответ

1

Используйте РНР DateTime класс:

$date = new DateTime('9/20/2012'); 
echo $date->format('m/t/Y'); // t returns no. of days in a month 

Выход:

09/30/2012 

Demo!

+1

Кто ненавидит DateTime? Я не понимаю, почему это было приостановлено ...? –

+0

Не видел этого здесь. Это правильный ответ. – Rob

+1

+1 для обоих ответов, использующих DateTime. Это решение будет работать только в том случае, если вам просто нужно вывести дату окончания месяца, а не выполнять дальнейшие вычисления на основе этой даты. –

0

Попробуйте это:

function daysInMonth(month,year) { 
    var dd = new Date(year, month, 0); 
    return dd.getDate(); 
} 
1

Вы можете использовать date->modify():

<?php 
$date = new DateTime('9/20/2012'); 
$date->modify('last day of this month'); 
echo $date->format('m/d/Y'); // 09/30/2012 
?> 

<?php 
$date = new DateTime('10/20/2012'); 
$date->modify('last day of this month'); 
echo $date->format('m/d/Y'); // 10/31/2012 
?> 
+1

+1 к обоим ответам, использующим DateTime. Это было бы лучше, если бы вам нужно было работать с окончанием месяца (например, найти интервалы дат или такие). –

Смежные вопросы