我要写一个函数,如果在两个日期之间,它将返回一个特定的日期。。。我一直在尝试使用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