이 PHP 코드가 있습니다.
$monthNum = sprintf("%02s", $result["month"]);
$monthName = date("F", strtotime($monthNum));
echo $monthName;
그러나 December
오히려 August
.
$result["month"]
8과 같으므로 sprintf
함수는 a 0
를 추가 하여 만듭니다 08
.
이 PHP 코드가 있습니다.
$monthNum = sprintf("%02s", $result["month"]);
$monthName = date("F", strtotime($monthNum));
echo $monthName;
그러나 December
오히려 August
.
$result["month"]
8과 같으므로 sprintf
함수는 a 0
를 추가 하여 만듭니다 08
.
strtotime
"8"이 무엇을 의미하는지 전혀 모릅니다. strtotime
"2012-05-12 08:43:12"와 같은 전체 타임 스탬프를 구문 분석합니다. 이 문맥에서 "8"은 무엇을 의미합니까?
echo date( "F", time() );
? 예를 들어 echo date( "F", strtotime("2019-03-09") );
"March"를 출력합니다
답변:
이를 수행하는 권장 방법 :
요즘에는 모든 날짜 / 시간 수학에 DateTime 객체를 사용해야합니다. 이를 위해서는 PHP 버전이 5.2 이상이어야합니다. Glavić의 답변 에서 볼 수 있듯이 다음을 사용할 수 있습니다.
$monthNum = 3;
$dateObj = DateTime::createFromFormat('!m', $monthNum);
$monthName = $dateObj->format('F'); // March
!
서식 문자는 받는 사람 모두 재설정하는 데 사용되는 유닉스 시대를 . m
형식 문자는 앞에 0이있는 달의 숫자 표현입니다.
대체 솔루션 :
이전 PHP 버전을 사용 중이고 현재 업그레이드 할 수없는 경우이 솔루션을 사용할 수 있습니다. date()
function 의 두 번째 매개 변수는 타임 스탬프를 허용하며 다음과 같이 타임 스탬프 mktime()
를 만드는 데 사용할 수 있습니다 .
$monthNum = 3;
$monthName = date('F', mktime(0, 0, 0, $monthNum, 10)); // March
당신은 같은 3 글자 월 이름 싶다면 Mar
변화 F
에를 M
. 사용 가능한 모든 포맷 옵션 목록은 PHP 매뉴얼 문서 에서 찾을 수 있습니다 .
모두가 strtotime () 및 date () 함수를 사용하고 있기 때문에 DateTime 예제 를 보여 드리겠습니다 .
$dt = DateTime::createFromFormat('!m', $result['month']);
echo $dt->format('F');
DateTime::createFromFormat('m|', $result['month']);
하여 누락 된 필드 만 재설정 할 수 있습니다 .
strftime()
할 것입니다.
사용 mktime()
:
<?php
$monthNum = 5;
$monthName = date("F", mktime(0, 0, 0, $monthNum, 10));
echo $monthName; // Output: May
?>
PHP 매뉴얼 참조 : http://php.net/mktime
"m"
는 월을 2 자리 숫자로 string
. 예 : January = 01, February = 02
strtotime
표준 날짜 형식을 예상하고 타임 스탬프를 다시 전달합니다.
strtotime
날짜 형식을 출력하기 위해 단일 숫자를 전달 하는 것 같습니다 .
mktime
날짜 요소를 매개 변수 로 사용 하는 것을 사용해야합니다 .
$monthNum = sprintf("%02s", $result["month"]);
$monthName = date("F", mktime(null, null, null, $monthNum));
echo $monthName;
그러나 mktime 함수는 월 번호 앞에 0이 필요하지 않으므로 첫 번째 줄은 완전히 필요하지 않습니다. $result["month"]
함수에 바로 전달할 수 있습니다.
그런 다음 이것은 날짜를 인라인으로 반영하여 단일 행으로 결합 할 수 있습니다.
echo date("F", mktime(null, null, null, $result["month"], 1));
...
date("F", mktime(null, null, null, 2));
반환 March
됩니다 February
.
mktime
은 현재 요일을 사용합니다. 오늘은 31 일입니다. 2 월 31 일은 무엇입니까? :)
1
에 5 매개 변수로 제공되지 않습니다 mktime
3 매개 변수 만 등을 date
하는 것으로 생산하고하지 않을 결과
현재 로케일과 관련하여 변환을 수행하려면 다음 strftime
함수를 사용할 수 있습니다 .
setlocale(LC_TIME, 'fr_FR.UTF-8');
$monthName = strftime('%B', mktime(0, 0, 0, $monthNumber));
date
로케일을 존중하지 않습니다 strftime
.
$monthName = utf8_encode(strftime('%B', mktime(0, 0, 0, $monthNumber)));
'Août'처럼 강조된 문자를 표시하기 위해 사용해야 했습니다
주어진 번호에서 한 달을 인쇄하는 방법은 여러 가지가 있습니다. 당신을 위해 하나의 스위트를 선택하십시오.
1. 매개 변수 'F'와 함께 date () 함수
코드 예 :
$month_num = 10;
echo date("F", mktime(0, 0, 0, $month_num, 10)); //output: October
2. createFromFormat ()을 사용하여 PHP 날짜 객체 생성
코드 예
$dateObj = DateTime::createFromFormat('!m', $monthNum);
echo "month name: ".$dateObj->format('F'); // Output: October
3. strtotime () 함수
echo date("F", strtotime('00-'.$monthNum.'-01')); // Output: October
4. mktime () 함수
echo date("F", mktime(null, null, null, $monthNum)); // Output: October
5. jdmonthname () 사용
$jd=gregoriantojd($monthNum,10,2019);
echo jdmonthname($jd,0); // Output: Oct
$monthNum = 5;
$monthName = date("F", mktime(0, 0, 0, $monthNum, 10));
https://css-tricks.com/snippets/php/change-month-number-to-month-name/ 에서 이것을 발견 했고 완벽하게 작동했습니다.
현재 동일한 문제를 해결하기 위해 아래 솔루션을 사용하고 있습니다.
//set locale,
setlocale(LC_ALL,"US");
//set the date to be converted
$date = '2016-08-07';
//convert date to month name
$month_name = ucfirst(strftime("%B", strtotime($date)));
echo $month_name;
로케일 설정에 대해 자세히 알아 보려면 http://php.net/manual/en/function.setlocale.php 로 이동 하십시오.
strftime에 대한 자세한 내용은 http://php.net/manual/en/function.strftime.php 를 참조 하십시오.
Ucfirst()
문자열의 첫 글자를 대문자로 표시하는 데 사용됩니다.
한 줄만
DateTime::createFromFormat('!m', $salary->month)->format('F'); //April
date("F", strtotime($result["month"]))
위의 코드를 사용하십시오
<?php
$month =1;
$convert =DateTime::createFromFormat('!m', $month);
echo $convert->format('F');
?>
cal_info ()를 사용하는 것이 숫자를 문자열로 변환하는 가장 쉬운 방법이라고 생각합니다.
$monthNum = sprintf("%02s", $result["month"]); //Returns `08`
$monthName = cal_info(0); //Returns Gregorian (Western) calendar array
$monthName = $monthName[months][$monthNum];
echo $monthName; //Returns "August"
cal_info ()에 대한 문서를 참조하십시오.
나는이 질문이 얼마 전에 요청되었다는 것을 알고 있지만이 답변을 찾는 모든 사람들이 전체 if / else 문을 작성하는 것을 피하려고 할 것이라고 생각했기 때문에 복사 / 붙여 넣기 할 수 있도록 작성했습니다. 이 함수의 유일한주의 사항은 0으로 인덱싱 된 숫자가 아니라 월의 실제 숫자에 해당하므로 1 월은 0이 아니라 1입니다.
function getMonthString($m){
if($m==1){
return "January";
}else if($m==2){
return "February";
}else if($m==3){
return "March";
}else if($m==4){
return "April";
}else if($m==5){
return "May";
}else if($m==6){
return "June";
}else if($m==7){
return "July";
}else if($m==8){
return "August";
}else if($m==9){
return "September";
}else if($m==10){
return "October";
}else if($m==11){
return "November";
}else if($m==12){
return "December";
}
}
이것이 내가 한 방법입니다
// sets Asia/Calcutta time zone
date_default_timezone_set("Asia/Calcutta");
//fetches current date and time
$date = date("Y-m-d H:i:s");
$dateArray = date_parse_from_format('Y/m/d', $date);
$month = DateTime::createFromFormat('!m', $dateArray['month'])->format('F');
$dateString = $dateArray['day'] . " " . $month . " " . $dateArray['year'];
echo $dateString;
보고 30 June 2019
여기서 간단한 트릭은 필요에 따라 실행 가능한 strtotime () 함수를 사용할 수 있습니다. 숫자를 월 이름으로 변환합니다.
1. 1 월, 2 월, 3 월의 결과를 원하면 날짜 안에 'M'을 매개 변수로하여 아래를 시도해보세요.
$month=5;
$nmonth = date('M',strtotime("01-".$month."-".date("Y")));
echo $nmonth;
출력 : 5 월
/ 2. 'M'대신 'F'를 사용하여 전체 월 이름을 출력으로 1 월 2 월 3 월 등으로 얻을 수 있습니다.
$month=1;
$nmonth = date('M',strtotime("01-".$month."-".date("Y")));
echo $nmonth;
출력 : 1 월
$days = ['', 'Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
$month = ( date('m') < 10 ) ? date('m')[1] : date('m');
그것은 달을 추출합니다.
다음과 같은 기본 함수를 사용하십시오 jdmonthname()
.
echo jdmonthname($monthNum, CAL_MONTH_GREGORIAN_LONG);
jdmonthname(3, CAL_MONTH_GREGORIAN_LONG);
반환November
SQL에서 monthname () 함수를 사용할 수 있습니다.
월 이름 (날짜 _ 열)별로 테이블 그룹에서 월 이름 (날짜 _ 열) 선택
strtotime
당신이 무엇을하려고하는지 전혀 모릅니다. 또는 이와 같은 스위치를 사용하십시오.