<?php
$month = 2;
$year = 11;
echo date('F j, Y', strtotime("now"))."\n";
echo date('F j, Y', strtotime("$month/".date('d')."/$year"));
?>
Выходы:
3 сентября 2011 г.
3 февраля 2011 г.
http://codepad.org/NWLt7ER6
РЕДАКТИРОВАТЬ
Кроме того, что касается проверки ввода, я бы настроил его на прием только числовых значений и проверку их.
$get_month = (int)$_GET['month'];
$get_year = (int)$_GET['year']; // This should be a 4 digit year; no '00' - '09' to deal with
// The year check is up to you what range you accept
if (($get_month > 0 && $get_month <= 12) && ($get_year > 1900 && $get_year < 2100)) {
$get_date = strtotime("$get_month/".date('d')."/$get_year");
}
Вы также можете захотетьпоместите это в функцию и вызовите ее, используйте ее в области видимости объекта или используйте более конкретные имена глобальных переменных, чем $date
.
EDIT
И как profitphpуказывает на то, что использование дня для другого месяца, когда этот день не существует, приводит к следующему месяцу (сентябрь и февраль не имеют 31 дня):
<?php
$month = 2;
$day = 31;
$year = 11;
echo date('F j, Y', strtotime(date('m')."/$day/".date('Y')))."\n";
echo date('F j, Y', strtotime("$month/$day/$year"));
?>
Выходы:
1 октября 2011 года
3 марта 2011 года
http://codepad.org/RFXTze5z