PHP를 사용하여 한 달의 첫 번째 날짜와 마지막 날짜를 어떻게 찾을 수 있습니까?


답변:


205

가장 쉬운 방법은를 사용하는 것입니다.이 방법 date을 사용하면 하드 코딩 된 값을 타임 스탬프에서 추출한 값과 혼합 할 수 있습니다. 타임 스탬프를 제공하지 않으면 현재 날짜와 시간을 가정합니다.

// Current timestamp is assumed, so these find first and last day of THIS month
$first_day_this_month = date('m-01-Y'); // hard-coded '01' for first day
$last_day_this_month  = date('m-t-Y');

// With timestamp, this gets last day of April 2010
$last_day_april_2010 = date('m-t-Y', strtotime('April 21, 2010'));

date()주어진 문자열 'm-t-Y'에서 특정 기호를 검색하고 타임 스탬프의 값으로 대체합니다. 따라서 이러한 기호를 사용하여 타임 스탬프에서 원하는 값과 서식을 추출 할 수 있습니다. 위의 예에서 :

  • Y 타임 스탬프 ( '2010')에서 4 자리 연도를 제공합니다.
  • m 타임 스탬프에서 숫자로 된 월을 제공하며 앞에 0 ('04 ')이 붙습니다.
  • t 타임 스탬프 월 ( '30')의 일 수를 제공합니다.

이것으로 창의력을 발휘할 수 있습니다. 예를 들어 한 달의 1 초와 마지막 초를 가져 오려면 :

$timestamp    = strtotime('February 2012');
$first_second = date('m-01-Y 00:00:00', $timestamp);
$last_second  = date('m-t-Y 12:59:59', $timestamp); // A leap year!

기타 기호 및 자세한 내용 은 http://php.net/manual/en/function.date.php 를 참조 하십시오.


3
여기에 정보를 추가하기 만하면이 형식으로 날짜를 유닉스 타임 스탬프로 다시 변환하는 데 문제가있었습니다. 'mdY'대신 'dmY'형식을 사용하여 수정되었습니다. 마지막 초도 '12가 아닌 '23 : 59 : 59 '가됩니다. : 59 : 59 '..
에드 Qarib


18

날짜 함수를 사용하여 한 달에 몇 일이 있는지 확인할 수 있습니다.

// Get the timestamp for the date/month in question.
$ts = strtotime('April 2010');

echo date('t', $ts); 
// Result: 30, therefore, April 30, 2010 is the last day of that month.

도움이되기를 바랍니다.

편집 : Luis의 답변을 읽은 후 올바른 형식 (YY-mm-dd)으로 원할 수 있습니다. 명백 할 수 있지만 언급해도 괜찮습니다.

// After the above code
echo date('Y-m-t', $ts); 

11

그러면 해당 월의 마지막 날이 표시됩니다.

function lastday($month = '', $year = '') {
   if (empty($month)) {
      $month = date('m');
   }
   if (empty($year)) {
      $year = date('Y');
   }
   $result = strtotime("{$year}-{$month}-01");
   $result = strtotime('-1 second', strtotime('+1 month', $result));
   return date('Y-m-d', $result);
}

그리고 첫날 :

function firstDay($month = '', $year = '')
{
    if (empty($month)) {
      $month = date('m');
   }
   if (empty($year)) {
      $year = date('Y');
   }
   $result = strtotime("{$year}-{$month}-01");
   return date('Y-m-d', $result);
} 

5

특정 연도 는 다음과 같이 자연어로 date ()를 사용하십시오.

$first_date = date('d-m-Y',strtotime('first day of april 2010'));
$last_date = date('d-m-Y',strtotime('last day of april 2010'));
// Isn't it simple way?

하지만 이번 달

$first_date = date('d-m-Y',strtotime('first day of this month'));
$last_date = date('d-m-Y',strtotime('last day of this month'));

5

지정된 날짜 변수에서 첫날과 마지막 날을 찾으려면 다음과 같이 할 수 있습니다.

$date    =    '2012-02-12';//your given date

$first_date_find = strtotime(date("Y-m-d", strtotime($date)) . ", first day of this month");
echo $first_date = date("Y-m-d",$first_date_find);

$last_date_find = strtotime(date("Y-m-d", strtotime($date)) . ", last day of this month");
echo $last_date = date("Y-m-d",$last_date_find);

현재 날짜는 간단하게 사용하십시오.

$first_date = date('Y-m-d',strtotime('first day of this month'));
$last_date = date('Y-m-d',strtotime('last day of this month'));

date ( "Ymd", strtotime ($ date))는 같지만 코드를 적게 작성하므로 $ date로 바꿀 수 있습니다.
nicolascolman

2

의 첫 번째와 마지막 날짜를 얻으려면 Last Month;

$dateBegin = strtotime("first day of last month");  
$dateEnd = strtotime("last day of last month");

echo date("D-F-Y", $dateBegin);  
echo "<br>";        
echo date("D-F-Y", $dateEnd);

2

간단한 형식

   $curMonth = date('F');
   $curYear  = date('Y');
   $timestamp    = strtotime($curMonth.' '.$curYear);
   $first_second = date('Y-m-01 00:00:00', $timestamp);
   $last_second  = date('Y-m-t 12:59:59', $timestamp); 

다음 달에 $ curMonth$ curMonth로 변경 하십시오. = date ( 'F', strtotime ( "+ 1 months"));


0
$month=01;
$year=2015;
$num = cal_days_in_month(CAL_GREGORIAN, $month, $year);
echo $num;

날짜의 마지막 날 31 표시

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.