Lấy ngày cuối tháng trong php

có nhiều cách để làm điều đó, tôi cung cấp cho bạn hai câu trả lời \ ý tưởng:

1- Cố gắng sử dụng strtotimehàm PHP ( http://php.net/manual/es/ Chức năng.strtotime.php )

Một cái gì đó như date("Y-m-d", strtotime("last day of this month"));hoặc ngày đầu tiên ... hoặc bất kỳ tháng nào.

2- Cách khác mà bạn có thể sử dụng:

Ngày đầu tiên:

date("Y-m-d", mktime(0, 0, 0, *YOUR MONTH PARAM*,1 ,date("Y")));

Ngày cuối:

date("Y-m-d", mktime(0, 0, 0, *YOUR MONTH PARAM*+1,0,date("Y")));

Đọc về hàm mktime tại đây:

http://php.net/manual/es/ Chức năng.mktime.php

Chúc may mắn!

6 hữu ích 1 bình luận chia sẻ

answer

709

Lấy ngày cuối tháng trong php

ttrả về số ngày trong tháng của một ngày nhất định (xem tài liệu chodate ):

$a_date = "2009-11-23";
echo date("Y-m-t", strtotime($a_date));

709 hữu ích 5 bình luận chia sẻ

answer

98

Lấy ngày cuối tháng trong php

Mã sử ​​dụng strtotime () sẽ thất bại sau năm 2038. (như được đưa ra trong câu trả lời đầu tiên trong chuỗi này) Ví dụ: hãy thử sử dụng như sau:

$a_date = "2040-11-23";
echo date("Y-m-t", strtotime($a_date));

Nó sẽ đưa ra câu trả lời là: 1970-01-31

Vì vậy, thay vì strtotime, nên sử dụng chức năng DateTime. Mã sau sẽ hoạt động mà không có vấn đề Năm 2038:

$d = new DateTime( '2040-11-23' ); 
echo $d->format( 'Y-m-t' );

98 hữu ích 5 bình luận chia sẻ

answer

84

Lấy ngày cuối tháng trong php

Tôi biết điều này hơi muộn một chút nhưng tôi nghĩ có một cách thanh lịch hơn để làm điều này PHP 5.3+bằng cách sử dụng lớp DateTime :

$date = new DateTime('now');
$date->modify('last day of this month');
echo $date->format('Y-m-d');

84 hữu ích 5 bình luận chia sẻ

answer

61

Lấy ngày cuối tháng trong php

Ngoài ra còn có hàm PHP tích hợp cal_days_in_month () ?

"Hàm này sẽ trả về số ngày trong tháng của năm cho lịch được chỉ định." http://php.net/manual/en/feft.cal-days-in-month .

echo cal_days_in_month(CAL_GREGORIAN, 11, 2009); 
// = 30

61 hữu ích 1 bình luận chia sẻ

answer

24

Lấy ngày cuối tháng trong php

Điều này sẽ làm việc:

$week_start = strtotime('last Sunday', time());
$week_end = strtotime('next Sunday', time());

$month_start = strtotime('first day of this month', time());
$month_end = strtotime('last day of this month', time());

$year_start = strtotime('first day of January', time());
$year_end = strtotime('last day of December', time());

echo date('D, M jS Y', $week_start).'<br/>';
echo date('D, M jS Y', $week_end).'<br/>';

echo date('D, M jS Y', $month_start).'<br/>';
echo date('D, M jS Y', $month_end).'<br/>';

echo date('D, M jS Y', $year_start).'<br/>';
echo date('D, M jS Y', $year_end).'<br/>';

24 hữu ích 0 bình luận chia sẻ

answer

17

Lấy ngày cuối tháng trong php

Bạn có thể tạo một ngày cho ngày đầu tiên của tháng tiếp theo, sau đó sử dụng strtotime("-1 day", $firstOfNextMonth)

17 hữu ích 4 bình luận chia sẻ

answer

11

Lấy ngày cuối tháng trong php

Hãy thử điều này, nếu bạn đang sử dụng PHP 5.3+,

$a_date = "2009-11-23";
$date = new DateTime($a_date);
$date->modify('last day of this month');
echo $date->format('Y-m-d');

Để tìm tháng tiếp theo vào ngày cuối cùng, hãy sửa đổi như sau,

 $date->modify('last day of 1 month');
 echo $date->format('Y-m-d');

và v.v.

11 hữu ích 0 bình luận chia sẻ

answer

11

Lấy ngày cuối tháng trong php

Điều gì là sai - Thanh lịch nhất đối với tôi là sử dụng DateTime

Tôi tự hỏi tôi không nhìn thấy DateTime::createFromFormat, một lót

$lastDay = \DateTime::createFromFormat("Y-m-d", "2009-11-23")->format("Y-m-t");

11 hữu ích 1 bình luận chia sẻ

answer

9

Lấy ngày cuối tháng trong php

Giải pháp của bạn là đây ..

$lastday = date('t',strtotime('today'));

9 hữu ích 1 bình luận chia sẻ

answer

7

Lấy ngày cuối tháng trong php

Nếu bạn sử dụng tiện ích mở rộng API Carbon cho PHP DateTime, bạn có thể nhận được ngày cuối cùng của tháng với:

$date = Carbon::now();
$date->addMonth();
$date->day = 0;
echo $date->toDateString(); // use toDateTimeString() to get date and time 

7 hữu ích 3 bình luận chia sẻ

answer

4

Lấy ngày cuối tháng trong php

Bạn cũng có thể sử dụng nó với datetime

$date = new \DateTime();
$nbrDay = $date->format('t');
$lastDay = $date->format('Y-m-t');

4 hữu ích 0 bình luận chia sẻ

answer

4

Lấy ngày cuối tháng trong php

Bạn có thể tìm thấy ngày cuối cùng của tháng một vài cách. Nhưng đơn giản là bạn có thể làm điều này bằng cách sử dụng hàm strtotime ()date () của PHP. Tôi tưởng tượng mã cuối cùng của bạn sẽ trông giống như thế này:

$a_date = "2009-11-23";
echo date('Y-m-t',strtotime($a_date));

Bản thử trực tiếp

Nhưng nếu bạn đang sử dụng PHP> = 5.2 Tôi thực sự khuyên bạn nên sử dụng đối tượng DateTime mới. Ví dụ như dưới đây:

$a_date = "2009-11-23";
$date = new DateTime($a_date);
$date->modify('last day of this month');
echo $date->format('Y-m-d');

Bản thử trực tiếp

Ngoài ra, bạn có thể giải quyết điều này bằng cách sử dụng chức năng của riêng bạn như dưới đây:

/**
 * Last date of a month of a year
 *
 * @param[in] $date - Integer. Default = Current Month
 *
 * @return Last date of the month and year in yyyy-mm-dd format
 */
function last_day_of_the_month($date = '')
{
    $month  = date('m', strtotime($date));
    $year   = date('Y', strtotime($date));
    $result = strtotime("{$year}-{$month}-01");
    $result = strtotime('-1 second', strtotime('+1 month', $result));

    return date('Y-m-d', $result);
}

$a_date = "2009-11-23";
echo last_day_of_the_month($a_date);

4 hữu ích 0 bình luận chia sẻ

answer

2

Lấy ngày cuối tháng trong php

$date1 = $year.'-'.$month; 
$d = date_create_from_format('Y-m',$date1); 
$last_day = date_format($d, 't');

2 hữu ích 0 bình luận chia sẻ

answer

2

Lấy ngày cuối tháng trong php

Sử dụng Zend_Date khá dễ dàng:

$date->setDay($date->get(Zend_Date::MONTH_DAYS));

2 hữu ích 0 bình luận chia sẻ

answer

1

Lấy ngày cuối tháng trong php

Đây là một chức năng hoàn chỉnh:

public function get_number_of_days_in_month($month, $year) {
    // Using first day of the month, it doesn't really matter
    $date = $year."-".$month."-1";
    return date("t", strtotime($date));
}

Điều này sẽ xuất ra sau:

echo get_number_of_days_in_month(2,2014);

Đầu ra: 28

1 hữu ích 0 bình luận chia sẻ

answer

1

Lấy ngày cuối tháng trong php

Có nhiều cách để có được ngày cuối cùng của tháng.

//to get last day of current month
echo date("t", strtotime('now'));

//to get last day from specific date
$date = "2014-07-24";
echo date("t", strtotime($date));

//to get last day from specific date by calendar
$date = "2014-07-24";
$dateArr=explode('-',$date);
echo cal_days_in_month(CAL_GREGORIAN, $dateArr[1], $dateArr[0]); 

1 hữu ích 0 bình luận chia sẻ

answer

1

Lấy ngày cuối tháng trong php

Tôi đến trễ nhưng có một số cách dễ dàng để làm điều này như đã đề cập:

$days = date("t");
$days = cal_days_in_month(CAL_GREGORIAN, date('m'), date('Y'));
$days = date("j",mktime (date("H"),date("i"),date("s"),(date("n")+1),0,date("Y")));

Sử dụng mktime () là cách tôi kiểm soát hoàn toàn mọi khía cạnh của thời gian ... IE

echo "<br> ".date("Y-n-j",mktime (date("H"),date("i"),date("s"),(11+1),0,2009));

Đặt ngày thành 0 và chuyển tháng của bạn lên 1 sẽ cho bạn ngày cuối cùng của tháng trước. 0 và số âm có ảnh hưởng tương tự trong các đối số khác nhau. PHP: mktime - Hướng dẫn

Như một số người đã nói rằng strtotime không phải là cách đi vững chắc nhất và rất ít nếu không có cách nào dễ dàng linh hoạt.

1 hữu ích 0 bình luận chia sẻ

answer

0

Lấy ngày cuối tháng trong php

Tôi đã gói nó trong lớp người trợ giúp thời gian hẹn hò của mình ở đây https://github.com/normandqq/Date-Time-Helper bằng cách sử dụng $dateLastDay = Model_DTHpr::getLastDayOfTheMonth();

Và nó đã được thực hiện

0 hữu ích 0 bình luận chia sẻ

answer

0

Lấy ngày cuối tháng trong php

Một cách khác sử dụng mktime và không phải ngày ('t'):

$dateStart= date("Y-m-d", mktime(0, 0, 0, 10, 1, 2016)); //2016-10-01
$dateEnd = date("Y-m-d", mktime(0, 0, 0, 11, 0, 2016)); //This will return the last day of october, 2016-10-31 :)

Vì vậy, cách này sẽ tính toán nếu nó là 31,30 hoặc 29

0 hữu ích 0 bình luận chia sẻ

answer

0

Lấy ngày cuối tháng trong php

Phần mở rộng API carbon cho PHP DateTime

Carbon::parse("2009-11-23")->lastOfMonth()->day;

hoặc là

Carbon::createFromDate(2009, 11, 23)->lastOfMonth()->day;

sẽ lấy lại

30

0 hữu ích 0 bình luận chia sẻ

answer

0

Lấy ngày cuối tháng trong php

Nếu bạn có một tháng khôn ngoan thì hãy lấy ngày cuối cùng của tháng sau đó,

public function getLastDateOfMonth($month)
    {
        $date = date('Y').'-'.$month.'-01';  //make date of month 
        return date('t', strtotime($date)); 
    }

$this->getLastDateOfMonth(01); //31

0 hữu ích 0 bình luận chia sẻ

answer

1

Lấy ngày cuối tháng trong php

function first_last_day($string, $first_last, $format) {
    $result = strtotime($string);
    $year = date('Y',$result);
    $month = date('m',$result);
    $result = strtotime("{$year}-{$month}-01");
    if ($first_last == 'last'){$result = strtotime('-1 second', strtotime('+1 month', $result)); }
    if ($format == 'unix'){return $result; }
    if ($format == 'standard'){return date('Y-m-d', $result); }
}

http://zkinformer.com/?p=134

1 hữu ích 1 bình luận chia sẻ

answer

2

Lấy ngày cuối tháng trong php

Đây là một cách thanh lịch hơn nhiều để có được cuối tháng:

  $thedate = Date('m/d/Y'); 
  $lastDayOfMOnth = date('d', mktime(0,0,0, date('m', strtotime($thedate))+1, 0, date('Y', strtotime($thedate)))); 

2 hữu ích 0 bình luận chia sẻ

answer

3

Lấy ngày cuối tháng trong php

Bạn có thể sử dụng " t" trong chức năng ngày để lấy số ngày trong một tháng cụ thể.

Mã sẽ giống như thế này:

function lastDateOfMonth($Month, $Year=-1) {
    if ($Year < 0) $Year = 0+date("Y");
    $aMonth         = mktime(0, 0, 0, $Month, 1, $Year);
    $NumOfDay       = 0+date("t", $aMonth);
    $LastDayOfMonth = mktime(0, 0, 0, $Month, $NumOfDay, $Year);
    return $LastDayOfMonth;
}

for($Month = 1; $Month <= 12; $Month++)
    echo date("Y-n-j", lastDateOfMonth($Month))."\n";

Các mã là tự giải thích. Vì vậy, hy vọng nó sẽ giúp.

3 hữu ích 0 bình luận chia sẻ