programing

월을 이름에서 숫자로 바꾸다

topblog 2023. 10. 15. 16:55
반응형

월을 이름에서 숫자로 바꾸다

쉽게 바꿀 수 있는 방법이 있습니까?$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

반응형