我需要在本周找到星期一的日期。我怎么能在PHP 4中做到这一点?
答案 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 =星期六)所以,如果现在是星期三(第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";
?>