获取PHP的下一个星期一日期(包括今天)

时间:2016-04-08 08:05:30

标签: php date datetime

我正在创建一个基于日期的PHP页面,它将获得下周一的日期。

我的代码片段如下 - 我使用DateTime和修改方法获取下一个星期一日期,但我需要包括的是,如果今天的日期是星期一,我想选择它(因为它只是选择下周一,不包括今天。

$startDate = new DateTime();
$startDate->modify('next monday')->format('d-m-Y');

如何改变这一点,如果今天是星期一,它会使用今天的日期而不是下一个星期一之后呢?

2 个答案:

答案 0 :(得分:1)

使用date();,您可以获得当天的数字(例如:星期一为1),您可以使用mktime来指定时间戳

获取当天数字的示例:

echo date('N'); // show : 5 cause we are Friday when you post your question

日期+ mktime的示例(来自doc):

// Prints: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));

所以,你可以这样做:

// Cause we are the 08/04/2016, this line print 6 (cause tomorow is the 6th day of the week) 
echo date("N", mktime(0, 0, 0, date('m'), date(d)+1, date('Y')));

如果你能得到当天的数字,你可以(用一点点数学)找到下一个星期一。

使用/处理/训练此功能,如果您需要更多帮助,请回来:)。

答案 1 :(得分:0)

感谢所有帖子,我选择使用$day = $startDate->format('N');获取当天的数字,然后创建一个if语句来检查数字是否等于1。