我试图根据今天的日期获得11月1日的最后日期。
E.g。今天是2016-09-23所以11月1日将是2015-11-01。
如果今天的日期是2016-11-20,那么11月1日将是2016-11-01。
我有以下代码,这些代码只是拉动当年的11月1日。
$last_november = date('Y-m-d', strtotime('1st november'));
有人可以帮忙吗?
谢谢,
约翰
答案 0 :(得分:2)
使用此:
$date = date('Y-m-d');
$lastNovember = date('Y-m-d', strtotime('1st november'));
$year = '';
//decrement the year's value by 1 to get previous year november's first date
if ($date < $lastNovember) {
$year = date('Y') - 1;
$lastNovember = date('Y-m-d', strtotime("1st november {$year}"));
}
var_dump($lastNovember);
,如果当前日期少于今年11月的日期,则使用前一年
答案 1 :(得分:0)
我们需要知道的是,当前日期是在11月1日之前还是之后。如果我们在11月1日之前,那么去年11月1日是去年,否则是今年(包括今天是11月1日)。
$year = date('Y'); // start with the current year
if (date('nd') < 1101) {
// we are before 1st November so the last one was last year
$year--;
}
$last_november = $year . '-11-01';
或者如果你想要一行,
$last_november = (date('nd') < 1101 ? (date('Y')-1) : date('Y')) . '-11-01';
注意:强>
一个潜在的问题是你如何在比较(date('nd') < 1101)
中写日期。匹配日期格式nd
。在没有任何前导0的情况下写月份,但总是将当天写为两个字符(如果需要,前导0)。 1月1日为101
,1月20日为120
,11月17日为1117
等...请参阅http://php.net/manual/en/function.date.php