Как получить год и месяц с определенной даты.
например. $dateValue = '2012-01-05';
С этой даты мне нужно получить год 2012 и месяц как Январь.
Как получить год и месяц с определенной даты.
например. $dateValue = '2012-01-05';
С этой даты мне нужно получить год 2012 и месяц как Январь.
Используйте strtotime():
$time=strtotime($dateValue);
$month=date("F",$time);
$year=date("Y",$time);
Используя date() и strtotime() от документы.
$date = "2012-01-05";
$year = date('Y', strtotime($date));
$month = date('F', strtotime($date));
echo $month
Вероятно, это не самый эффективный код, но здесь он идет:
$dateElements = explode('-', $dateValue);
$year = $dateElements[0];
echo $year;    //2012
switch ($dateElements[1]) {
   case '01'    :  $mo = "January";
                   break;
   case '02'    :  $mo = "February";
                   break;
   case '03'    :  $mo = "March";
                   break;
     .
     .
     .
   case '12'    :  $mo = "December";
                   break;
}
echo $mo;      //January
Я поделюсь своим кодом:
В приведенной вами дате примера:
$dateValue = '2012-01-05';
Он будет выглядеть следующим образом:
dateName($dateValue);
   function dateName($date) {
        $result = "";
        $convert_date = strtotime($date);
        $month = date('F',$convert_date);
        $year = date('Y',$convert_date);
        $name_day = date('l',$convert_date);
        $day = date('j',$convert_date);
        $result = $month . " " . $day . ", " . $year . " - " . $name_day;
        return $result;
    }
и вернет значение: 5 января 2012 г. - четверг
Вы можете использовать этот код:
$dateValue = strtotime('2012-06-05');
$year = date('Y',$dateValue);
$monthName = date('F',$dateValue);
$monthNo = date('m',$dateValue);
printf("m=[%s], m=[%d], y=[%s]\n", $monthName, $monthNo, $year);
Я использую эти функции для получения года, месяца, дня с даты
вы должны поместить их в класс
    public function getYear($pdate) {
        $date = DateTime::createFromFormat("Y-m-d", $pdate);
        return $date->format("Y");
    }
    public function getMonth($pdate) {
        $date = DateTime::createFromFormat("Y-m-d", $pdate);
        return $date->format("m");
    }
    public function getDay($pdate) {
        $date = DateTime::createFromFormat("Y-m-d", $pdate);
        return $date->format("d");
    }
$dateValue = '2012-01-05';
$yeararray = explode("-", $dateValue);
echo "Year : ". $yeararray[0];
echo "Month : ". date( 'F', mktime(0, 0, 0, $yeararray[1]));
Usiong explode() это можно сделать.
$dateValue = '2012-01-05';
$year = date('Y',strtotime($dateValue));
$month = date('F',strtotime($dateValue));
Я лично предпочитаю использовать этот ярлык. Выходные данные все равно будут одинаковыми, но вам не нужно хранить месяц и год в отдельных переменных
$dateValue = '2012-01-05';
$formattedValue = date("F Y", strtotime($dateValue));
echo $formattedValue; //Output should be January 2012
Небольшая заметка об использовании этого трюка, вы можете использовать запятую, чтобы разделить месяц и год следующим образом:
$formattedValue = date("F, Y", strtotime($dateValue));
echo $formattedValue //Output should be January, 2012
$dateValue = strtotime($q);
$yr = date("Y", $dateValue) ." "; 
$mon = date("m", $dateValue)." "; 
$date = date("d", $dateValue);