在PHP4中获取当前星期一的日期

在PHP4中获取当前星期一的日期,php,date,php4,Php,Date,Php4,我需要找到本周星期一的日期。如何在PHP4中实现这一点 echo date('Y-m-d', strtotime('previous monday')); 不过,只有一个音符。你要确保今天不是星期一,否则你会得到前一个星期一的日期,就像上面说的。你可以这样做 if (date('w') == 1) { // today is monday } else { // find last monday } 下周: echo date('Y-m-d',time()+( 8 - dat

我需要找到本周星期一的日期。如何在PHP4中实现这一点

echo date('Y-m-d', strtotime('previous monday'));
不过,只有一个音符。你要确保今天不是星期一,否则你会得到前一个星期一的日期,就像上面说的。你可以这样做

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

echo date('Y-m-d',time()+( 8 - date('w'))*24*3600);
1个星期一,2个星期二,3个星期三等。试试看。

我的尝试:

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

试试这个:

return strtotime('last monday', strtotime('next sunday'));
试试这个

echo date('Y-m-d', strtotime('last monday', strtotime('next monday')));
如果今天是星期一,它将返回当前日期,否则将返回上星期一。至少在我的PHP 5.2.4上,在en_US语言环境下是这样的

编辑:解释

  • 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

最简单的方式:

$time = strtotime('monday this week');
试试这个

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

如果今天是星期一,则给出一周前的日期。@nickf:请参阅更新的答案。我记得在我发布之后:)小心你在strotime中使用的措辞,“前一个星期一”将在一周前的星期一出现,而此时你真正想要的是今天。IIRC,php中的“本周”是指周一到周日,但如果你将答案应用于查找周二的日期,那么这将在周一和周二给出错误的结果。@Kevin:我不确定我是否在跟踪你。以前的和…之间到底有什么区别。。。最后,我相信?如果今天是星期天呢@b先生-那么它仍然应该按预期运行(假设星期天是一周的开始),这是我最喜欢的周一00:00:00的解决方案。另一种(不那么优雅的)方法是
mktime(0,0,0,date('m'),date('j')-date('N')+1,date('Y'))
1周一、2周二、3周三等等:)试一试……如果你在周日尝试此代码,这不会给出前一个周一@罗耶坦是对的!我使用的是
dhtmlxlschedule
当今天是星期天时,前一个星期一的数据就会消失,实际上是整个星期!有什么建议吗?@Waiyl Karim这也许有帮助$星期日=日期('Y-m-d',标准时间('last sunday')$convertSunday=标准时间($sunday)$下周日=标准时间(“+7天”,周日美元);哈!当他们“将任何英文文本datetime描述解析为Unix时间戳”时,他们真的是这么想的,不是吗+1表示最具可读性的解决方案。+1!非常简单的解决方案。很高兴我找到了这个,因为我已经在建造一些复杂的建筑来确定星期一的日期。输入错误:
strotime
应该是
strotime
。今天是2012年5月17日星期四(Y-m-d),我会回显(日期(“Y-m-d”),strotime(“本周星期一”);2012年5月21日是下周一我想“本周周一”实际上是下周一。。。。“上周一”为我工作,下周一:回音日期('Y-m-d',标准时间('下周一');我真的觉得你必须在PHP4中工作,因为PHP5的日期功能更好。另外,PHP4已经正式停止使用一段时间了,所以它不会得到更多的补丁,而且可能不安全——无论如何,它不应该再投入生产使用。
$day_of_week = date("N") - 1; 
$monday_time = strtotime("-$day_of_week days");