【问题标题】:php get last day of given month [duplicate]php获取给定月份的最后一天[重复]
【发布时间】:2016-01-13 08:58:51
【问题描述】:

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

$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;

我的输出显示

2015-02-01<->2015-02-31

但会是2015-02-01&lt;-&gt;2015-02-28

【问题讨论】:

  • 获取时间戳:strototime("last day of February 2015"); - Example
  • 混合echoprint?丢人现眼!

标签: php date datetime


【解决方案1】:

我之前用PHP也遇到过这个问题,试试下面的方法:

$dateToTest = "2015-02-01";
$lastday = date('t',strtotime($dateToTest));

【讨论】:

  • gg... strtotime 会在 2038 年之后中断吗?
  • 21 年时间.. 我怀疑 Unix 时间戳,因为我们知道它会在那时存在。但是,如果这个“Y2K”问题仍然让您感到害怕,那么对于 MySQL,请将日期存储为 DATETIME 而不是 TIMESTAMP。 stackoverflow.com/a/2012620/1618363
  • 这不能回答问题。在stackoverflow.com/questions/1686724/…查看其他问题
【解决方案2】:

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

1- 尝试使用strtotime PHP 函数 (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")));

最后一天:

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

在此处了解 mktime 功能:

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

祝你好运!

【讨论】:

  • 记住,如果可以的话,不要硬编码!
【解决方案3】:

您可以使用 DateTime 类。

    $month='02';
    $first_day_this_month = date('Y-'.$month.'-01');

    $firstDayThisMonth = new \DateTime($first_day_this_month);

    $lastDayThisMonth = new \DateTime($firstDayThisMonth->format('Y-m-t'));
    $lastDayThisMonth->setTime(23, 59, 59);

    echo $firstDayThisMonth->format("Y-m-d");
    echo "<->";
    echo $lastDayThisMonth->format("Y-m-d");

【讨论】:

    【解决方案4】:

    您可以使用 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');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-24
      • 2019-05-03
      • 1970-01-01
      • 2014-11-21
      • 1970-01-01
      • 2012-11-29
      • 1970-01-01
      相关资源
      最近更新 更多