PHP - 如果日期小于明年一月
Posted
技术标签:
【中文标题】PHP - 如果日期小于明年一月【英文标题】:PHP - If date is less than next January 【发布时间】:2012-01-17 17:37:24 【问题描述】:我要编写一个函数,如果它在两个日期之间,它将返回一个特定的日子...我一直在尝试使用 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));
【问题讨论】:
【参考方案1】:2012 年 1 月的第 0 天实际上是 2011 年 12 月 31 日。
php 的月份是从 1 开始的。试试
$jan = date("F,Y", mktime(0, 0, 0, 1, 1, $year+1));
^--- 1st, not 0th
改为。
【讨论】:
【参考方案2】:day 参数应为 1 而不是 0。有关详细信息,请参阅 http://php.net/manual/en/function.mktime.php。
date("F,Y", mktime(0, 0, 0, 1, 1, $year+1));
【讨论】:
【参考方案3】: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
【讨论】:
以上是关于PHP - 如果日期小于明年一月的主要内容,如果未能解决你的问题,请参考以下文章
excel中,知道入职日期和离职日期,怎么求一月在职人数?急求……