php得到给定月份的最后一天

Fra*_*989 10 php datetime date

我想输出当年特定月份的最后和第一个日期.我正在使用此代码但不起作用

$month='02';
$first_day_this_month = date('Y-'.$month.'-01'); // hard-coded '01' for first day
$last_day_this_month  = date('Y-'.$month.'-t');

echo $first_day_this_month;print'<->';echo $last_day_this_month;
Run Code Online (Sandbox Code Playgroud)

我的输出显示

2015-02-01<->2015-02-31
Run Code Online (Sandbox Code Playgroud)

但它会 2015-02-01<->2015-02-28

Ush*_*doo 15

我之前遇到过PHP的这个问题,请尝试以下方法:

$dateToTest = "2015-02-01";
$lastday = date('t',strtotime($dateToTest));
Run Code Online (Sandbox Code Playgroud)

  • 21年的时间..我怀疑Unix时间戳,因为我们知道它会存在.但是如果这个"Y2K"问题仍然让你害怕MySQL,那么将日期存储为DATETIME而不是TIMESTAMP.http://stackoverflow.com/a/2012620/1618363 (2认同)

Gau*_*ier 7

您可以使用 DateTime 方法:

$month = '02';

$date = new DateTime(date('Y').'-'.$month.'-01');
$date->modify('last day of this month');
$last_day_this_month = $date->format('Y-m-d');
Run Code Online (Sandbox Code Playgroud)


Agu*_*tur 6

有很多方法可以做到这一点,我给你两个答案\想法:

1- 尝试使用strtotimePHP 函数 ( http://php.net/manual/es/function.strtotime.php )

date("Y-m-d", strtotime("last day of this month"));或第一天……或任何一个月。

2-您可以使用的其他方式:

第一天:

date("Y-m-d", mktime(0, 0, 0, *YOUR MONTH PARAM*,1 ,date("Y")));
Run Code Online (Sandbox Code Playgroud)

最后一天:

date("Y-m-d", mktime(0, 0, 0, *YOUR MONTH PARAM*+1,0,date("Y")));
Run Code Online (Sandbox Code Playgroud)

在此处阅读有关mktime功能的信息:

http://php.net/manual/es/function.mktime.php

祝你好运!