以PHP 4获取当周的星期一

时间:2010-06-02 13:51:45

标签: php date php4

我需要在本周找到星期一的日期。我怎么能在PHP 4中做到这一点?

8 个答案:

答案 0 :(得分:79)

最简单的方法:

$time = strtotime('monday this week');

答案 1 :(得分:12)

试试这个:

return strtotime('last monday', strtotime('next sunday'));

答案 2 :(得分:10)

echo date('Y-m-d',time()+( 1 - date('w'))*24*3600);

下周:

echo date('Y-m-d',time()+( 8 - date('w'))*24*3600);
周一为1,周二为2,周三为3,依此类推。试一试。

答案 3 :(得分:7)

echo date('Y-m-d', strtotime('previous monday'));

但只有一个注释。你想确保今天不是星期一,否则你会得到上一个星期一的日期,就像它说的那样。您可以按照以下方式执行此操作

if (date('w') == 1)
{
    // today is monday
}
else
{
    // find last monday
}

答案 4 :(得分:5)

$thisMonday = date('l, F d, Y', time() - ((date('w')-1) * 86400) );

编辑:解释

  • date('w')是星期几的数字表示(0 =星期日,6 =星期六)
  • 一天有86400秒
  • 我们取当前时间,然后减去(一天*(星期几 - 1))

所以,如果现在是星期三(第3天),星期一就是两天前:

time() - (86400 * (3 - 1)) = time() - 86400 * 2

如果是星期一(第1天),我们得到:

time() - (86400 * (1 - 1)) = time() - 86400 * 0 = time()

如果是星期日(第0天),星期一是明天。

time() - (86400 * (0 - 1)) = time() - -86400 = time() + 86400

答案 5 :(得分:2)

试试这个。

echo date('Y-m-d', strtotime('last monday', strtotime('next monday')));

如果今天是星期一,它将返回当前日期,否则将返回上一个星期一。至少它在en_US语言环境下的PHP 5.2.4上。

答案 6 :(得分:1)

试试这个

$day_of_week = date("N") - 1; 
$monday_time = strtotime("-$day_of_week days");

答案 7 :(得分:0)

我的尝试:

<?php
$weekday = date("w") - 1;
if ($weekday < 0)
{
    $weekday += 7;
}
echo "Monday this week : ", date("Y-m-d",time() - $weekday * 86400) , "\n";
?>