我需要在当前的一周中找到星期一的日期。在PHP 4中怎么做?
最简单的方法:
$time = strtotime('monday this week');
date('Y-m-d', strtotime('monday this week'));
- d.raev试试这个:
return strtotime('last monday', strtotime('next sunday'));
mktime(0,0,0,date('m'),date('j')-date('N')+1,date('Y'))
。 - designosisecho date('Y-m-d',time()+( 1 - date('w'))*24*3600);
下周计划:echo date('Y-m-d',time()+( 8 - date('w'))*24*3600);
1代表周一,2代表周二,3代表周三,以此类推。试一试吧。
dhtmlxSchedule
,当今天是星期日时,上一个周一的数据就消失了,整个星期都没有了!有什么建议吗? - Waiyl Karimecho date('Y-m-d', strtotime('previous monday'));
仅有一点需要注意。你需要确保今天不是星期一,否则你会得到上一个星期一的日期,就像它所说的那样。你可以按照以下方式进行操作:
if (date('w') == 1)
{
// today is monday
}
else
{
// find last monday
}
$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
试一下这个。
echo date('Y-m-d', strtotime('last monday', strtotime('next monday')));
试试这个
$day_of_week = date("N") - 1;
$monday_time = strtotime("-$day_of_week days");
我的尝试:
<?php
$weekday = date("w") - 1;
if ($weekday < 0)
{
$weekday += 7;
}
echo "Monday this week : ", date("Y-m-d",time() - $weekday * 86400) , "\n";
?>