Как получить год и месяц с определенной даты.
например $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);