PHP-如果日期小于明年一月



我要写一个函数,如果在两个日期之间,它将返回一个特定的日期。。。我一直在尝试使用mktime,但它一直在12月返回?

本质上,我正试图做到这一点:

$now = date('F d, Y');
if($now [is Between July of last year and January of next year] ) {
  //Output last day of January in this year
} elseif($now [is Between January of this year and July of this year]) {
  //Output last day of July for next year
}

我有点困惑,我需要使用mktime还是strtotime?为了确定明年1月,我在下面尝试了一下,但它在2012年12月回来了?

$jan = date("F,Y", mktime(0, 0, 0, 1, 0, $year+1));

2012年1月的第0天实际上是2011年12月31日。

PHP的月份是基于1的。尝试

$jan = date("F,Y", mktime(0, 0, 0, 1, 1, $year+1));
                                      ^--- 1st, not 0th

相反。

day参数应该是1而不是0。看见http://php.net/manual/en/function.mktime.php详细信息。

date("F,Y", mktime(0, 0, 0, 1, 1, $year+1));

mktime中的day参数应为1,而不是0:

mktime(0, 0, 0, 1, 1, $year+1);

否则它会认为是"1月0日",翻译成"1月1日减去1天"="前一年的12月31日"。

实际上,你可以使用这种行为来添加和减少日期(或任何真正的事情),比如:

mktime(0, 0, 0, 1, 67, 2012); //returns the correct date for the 67th day of 2012

相关内容

  • 没有找到相关文章

最新更新