Как получить год и месяц с даты – PHP

Как получить год и месяц с определенной даты.

например $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("Ymd", $pdate); return $date->format("Y"); } public function getMonth($pdate) { $date = DateTime::createFromFormat("Ymd", $pdate); return $date->format("m"); } public function getDay($pdate) { $date = DateTime::createFromFormat("Ymd", $pdate); return $date->format("d"); } 
 $dateValue = '2012-01-05'; $year = date('Y',strtotime($dateValue)); $month = date('F',strtotime($dateValue)); 
 $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'; $formattedValue = date("FY", 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);