我要编写一个函数,如果它在两个日期之间,它将返回特定日期...我一直在尝试使用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));
答案 0 :(得分:4)
2012年1月第0天实际上是2011年12月31日。
PHP的月份是从1开始的。尝试
$jan = date("F,Y", mktime(0, 0, 0, 1, 1, $year+1));
^--- 1st, not 0th
代替。
答案 1 :(得分:1)
day参数应为1而不是0.有关详细信息,请参阅http://php.net/manual/en/function.mktime.php。
date("F,Y", mktime(0, 0, 0, 1, 1, $year+1));
答案 2 :(得分:0)
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