월을 이름에서 숫자로 바꾸다
쉽게 바꿀 수 있는 방법이 있습니까?$month = "July";
하도록$nmonth = 7
(07
그것도 괜찮을 것입니다).사례 진술을 할 수는 있겠지만, 분명 변환할 수 있는 기능이 있을 겁니다.편집: 복수의 답변을 받아들일 수 있으면 좋겠어요. 기본적으로 두 분이 힘을 합쳐 제게 필요한 것을 주셨기 때문입니다.
$nmonth = date('m',strtotime($month));
그것은 다음에 대한 수치 값을 제공할 것입니다.$month
. 감사합니다!
시도해 보기:
<?php
$date = date_parse('July');
var_dump($date['month']);
?>
네.
$date = 'July 25 2010';
echo date('d/m/Y', strtotime($date));
그m
달을 숫자로 표시하는 형식으로 지정합니다.
여기 재미있는 모습이 있네요 켈리가 준 암호는 잘 작동하고 있어요
$nmonth = date("m", strtotime($month));
그러나 2월 한 달 동안은 현재 날이 윤년에는 30 또는 31이고 leap이 아닌 해에는 29,30,31일 때 예상대로 작동하지 않을 것입니다.3을 달 번호로 반환합니다. 예:
$nmonth = date("m", strtotime("february"));
해결책은 다음과 같은 달로 연도를 더하는 것입니다.
$nmonth = date("m", strtotime("february-2012"));
저는 이것을 php 매뉴얼에 있는 이 코멘트에서 얻었습니다.
$string = "July";
echo $month_number = date("n",strtotime($string));
'7' [월 번호]를 반환합니다.
사용하다date("m",strtotime($string));
출력 "08"의 경우
자세한 형식은 다음을 참조하십시오.
http://php.net/manual/en/function.date.php
이 제품을 사용할 수도 있습니다.
$month = $monthname = date("M", strtotime($month));
$nmonth = date("m", strtotime($month));
$monthname = date("F", strtotime($month));
F
의미 전체 월 이름
문자열 이름에서 월 수를 원하는 경우
$month = 'August';
$year = 2019;
echo date('m',strtotime($month.' '.$year));
기브 08
또는 이달의 전체 이름을 원한다면,
echo date('F')
아니면 반달의 이름을 원하신다면.
echo date('M')
<?php
$monthNum = 5;
$monthName = date("F", mktime(0, 0, 0, $monthNum, 10));
echo $monthName; //output: May
?>
가짜 날짜를 만드는 것이 가장 쉬울 수 있으므로 날짜 기능을 사용할 수 있습니다.
여기서 훌륭한 참고 자료: http://php.net/manual/en/function.date.php
예:
<?
$month = 7;
$tempDate = mktime(0, 0, 0, $month, 1, 1900);
echo date("m",$tempDate);
?>
위의 답변이 좋습니다.다음은 또 다른 방법입니다.
function getMonthNumber($monthStr) {
//e.g, $month='Jan' or 'January' or 'JAN' or 'JANUARY' or 'january' or 'jan'
$m = ucfirst(strtolower(trim($monthStr)));
switch ($m) {
case "January":
case "Jan":
$m = "01";
break;
case "February":
case "Feb":
$m = "02";
break;
case "March":
case "Mar":
$m = "03";
break;
case "April":
case "Apr":
$m = "04";
break;
case "May":
$m = "05";
break;
case "June":
case "Jun":
$m = "06";
break;
case "July":
case "Jul":
$m = "07";
break;
case "August":
case "Aug":
$m = "08";
break;
case "September":
case "Sep":
$m = "09";
break;
case "October":
case "Oct":
$m = "10";
break;
case "November":
case "Nov":
$m = "11";
break;
case "December":
case "Dec":
$m = "12";
break;
default:
$m = false;
break;
}
return $m;
}
혹시 와와와 조합을 사용할 수도 있습니까?
사용하다
date("F", mktime(0, 0, 0, ($month)));
where, $month value will be 1 -> 12
$date = 'Dec 25 2099';
echo date('d/m/Y', strtotime($date));
이것은 돌아옵니다.01/01/1970
, 즉, php가 모든 날짜를 지원하는 것은 아니며, 정확한 포맷된 날짜를 반환합니다.Jan 19 2038
그렇지만Jan 20 2038
돌아온다01/01/1970
$dt = '2017-Jan-10';
OR
$dt = '2017-January-10';
echo date('Y-m-d', strtime($dt));
echo date('Y/m/d', strtime($dt));
PHP 5.4를 사용하면 Matthew의 답변을 한 줄로 바꿀 수 있습니다.
$date = sprintf('%d-%d-01', $year, date_parse('may')['month']);
이게 간단한 해결책처럼 보일 수도 있다는 것을 알지만, 이런 것을 그냥 사용하면 어떨까요?
<select name="month">
<option value="01">January</option>
<option value="02">February</option>
<option selected value="03">March</option>
</select>
사용자는 2월을 보지만 02는 데이터베이스에 게시됩니다.
언급URL : https://stackoverflow.com/questions/3283550/convert-month-from-name-to-number
'programing' 카테고리의 다른 글
Oracle에서 루프용 커서 (0) | 2023.10.15 |
---|---|
C의 부호 없는 16진수 상수? (0) | 2023.10.15 |
MySQL에 BLOB 및 CLOB 파일을 삽입하는 방법? (0) | 2023.10.15 |
mysql 사용자가 존재하는지 확인하는 중 (0) | 2023.10.10 |
Powershell Web Admin Commandlets로 IIS 사이트의 앱 풀을 변경하는 방법 (0) | 2023.10.10 |